Message ID | 20180202154500.1616404-1-arnd@arndb.de |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
Series | net: qed: use correct strncpy() size | expand |
From: Arnd Bergmann <arnd@arndb.de> Date: Fri, 2 Feb 2018 16:44:47 +0100 > passing the strlen() of the source string as the destination > length is pointless, and gcc-8 now warns about it: > > drivers/net/ethernet/qlogic/qed/qed_debug.c: In function 'qed_grc_dump': > include/linux/string.h:253: error: 'strncpy' specified bound depends on the length of the source argument [-Werror=stringop-overflow=] > > This changes qed_grc_dump_big_ram() to instead uses the length of > the destination buffer, and use strscpy() to guarantee nul-termination. > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> Applied.
diff --git a/drivers/net/ethernet/qlogic/qed/qed_debug.c b/drivers/net/ethernet/qlogic/qed/qed_debug.c index f2633ec87a6a..fdf37abee3d3 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_debug.c +++ b/drivers/net/ethernet/qlogic/qed/qed_debug.c @@ -3649,10 +3649,8 @@ static u32 qed_grc_dump_big_ram(struct qed_hwfn *p_hwfn, BIT(big_ram->is_256b_bit_offset[dev_data->chip_id]) ? 256 : 128; - strncpy(type_name, big_ram->instance_name, - strlen(big_ram->instance_name)); - strncpy(mem_name, big_ram->instance_name, - strlen(big_ram->instance_name)); + strscpy(type_name, big_ram->instance_name, sizeof(type_name)); + strscpy(mem_name, big_ram->instance_name, sizeof(mem_name)); /* Dump memory header */ offset += qed_grc_dump_mem_hdr(p_hwfn,
passing the strlen() of the source string as the destination length is pointless, and gcc-8 now warns about it: drivers/net/ethernet/qlogic/qed/qed_debug.c: In function 'qed_grc_dump': include/linux/string.h:253: error: 'strncpy' specified bound depends on the length of the source argument [-Werror=stringop-overflow=] This changes qed_grc_dump_big_ram() to instead uses the length of the destination buffer, and use strscpy() to guarantee nul-termination. Signed-off-by: Arnd Bergmann <arnd@arndb.de> --- drivers/net/ethernet/qlogic/qed/qed_debug.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-)