Thread (5 messages) 5 messages, 4 authors, 2020-11-03

Re: [PATCH net-next] drivers: net: sky2: Fix -Wstringop-truncation with W=1

From: Jakub Kicinski <kuba@kernel.org>
Date: 2020-11-03 00:01:09

On Sat, 31 Oct 2020 18:40:28 +0100 Andrew Lunn wrote:
quoted hunk ↗ jump to hunk
In function ‘strncpy’,
    inlined from ‘sky2_name’ at drivers/net/ethernet/marvell/sky2.c:4903:3,
    inlined from ‘sky2_probe’ at drivers/net/ethernet/marvell/sky2.c:5049:2:
./include/linux/string.h:297:30: warning: ‘__builtin_strncpy’ specified bound 16 equals destination size [-Wstringop-truncation]

None of the device names are 16 characters long, so it was never an
issue, but reduce the length of the buffer size by one to avoid the
warning.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
---
 drivers/net/ethernet/marvell/sky2.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/marvell/sky2.c b/drivers/net/ethernet/marvell/sky2.c
index 25981a7a43b5..35b0ec5afe13 100644
--- a/drivers/net/ethernet/marvell/sky2.c
+++ b/drivers/net/ethernet/marvell/sky2.c
@@ -4900,7 +4900,7 @@ static const char *sky2_name(u8 chipid, char *buf, int sz)
 	};
 
 	if (chipid >= CHIP_ID_YUKON_XL && chipid <= CHIP_ID_YUKON_OP_2)
-		strncpy(buf, name[chipid - CHIP_ID_YUKON_XL], sz);
+		strncpy(buf, name[chipid - CHIP_ID_YUKON_XL], sz - 1);
Hm. This irks the eye a little. AFAIK the idiomatic code would be:

	strncpy(buf, name..., sz - 1);
	buf[sz - 1] = '\0';

Perhaps it's easier to convert to strscpy()/strscpy_pad()?
 	else
 		snprintf(buf, sz, "(chip %#x)", chipid);
 	return buf;
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help