RE: [PATCH 4/5] misc: fix compiler warning in ifstat and nstat
From: David Laight <hidden>
Date: 2020-11-30 09:20:40
From: Stephen Hemminger
quoted hunk ↗ jump to hunk
Sent: 30 November 2020 00:22 The code here was doing strncpy() in a way that causes gcc 10 warning about possible string overflow. Just use strlcpy() which will null terminate and bound the string as expected. This has existed since start of git era so no Fixes tag. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- misc/ifstat.c | 2 +- misc/nstat.c | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-)diff --git a/misc/ifstat.c b/misc/ifstat.c index c05183d79a13..d4a33429dc50 100644 --- a/misc/ifstat.c +++ b/misc/ifstat.c@@ -251,7 +251,7 @@ static void load_raw_table(FILE *fp) buf[strlen(buf)-1] = 0; if (info_source[0] && strcmp(info_source, buf+1)) source_mismatch = 1; - strncpy(info_source, buf+1, sizeof(info_source)-1); + strlcpy(info_source, buf+1, sizeof(info_source)); continue;
ISTM that once it has done a strlen() it ought to use the length for the later copy. I don't seem to have the source file (I'm guessing it isn't in the normal repo), but is that initial strlen() guaranteed not to return zero? David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)