[PATCH v2 1/2] gcc8.1: fix strncpy bounds warnings

Andy Green andy at warmcat.com
Tue Jun 26 13:36:30 CEST 2018


These warnings are coming on default Fedora 28 build and probably others using gcc 8.1

../shared.c: In function ‘expand_macro’:
../shared.c:483:3: warning: ‘strncpy’ specified bound depends on the length of the source argument [-Wstringop-overflow=]
   strncpy(name, value, len);
   ^~~~~~~~~~~~~~~~~~~~~~~~~
../shared.c:480:9: note: length computed here
   len = strlen(value);
         ^~~~~~~~~~~~~

strncpy with a computed length via strlen is usually
not the right thing.

Signed-off-by: Andy Green <andy at warmcat.com>
---
 shared.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/shared.c b/shared.c
index d7c7636..6cda79e 100644
--- a/shared.c
+++ b/shared.c
@@ -483,7 +483,7 @@ static char *expand_macro(char *name, int maxlength)
 		len = strlen(value);
 		if (len > maxlength)
 			len = maxlength;
-		strncpy(name, value, len);
+		memcpy(name, value, len);
 	}
 	return name + len;
 }



More information about the CGit mailing list