tools/lib/api/fs/fs.c: Fix misuse of strncpy()
authorBen Hutchings <ben@decadent.org.uk>
Thu, 19 Jul 2018 22:36:52 +0000 (23:36 +0100)
committerSalvatore Bonaccorso <carnil@debian.org>
Thu, 26 Sep 2019 12:19:06 +0000 (13:19 +0100)
gcc 8 reports:

In function 'fs__env_override',
    inlined from 'fs__get_mountpoint' at fs/fs.c:228:6:
fs/fs.c:222:2: error: 'strncpy' specified bound 4096 equals destination size [-Werror=stringop-truncation]
  strncpy(fs->path, override_path, sizeof(fs->path));
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

I'm not convinced it makes sense to truncate the copied string here,
but since we're already doing so let's ensure it's still null-
terminated.  Use strlcpy() instead.

Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name tools-lib-api-fs-fs.c-fix-misuse-of-strncpy.patch

tools/lib/api/fs/fs.c

index 7aba8243a0e7cbd3fa4726910db27bcaa3be6d1a..52cad933e8a652f584402dd58fb15e6b9cbb79ca 100644 (file)
@@ -12,6 +12,7 @@
 #include <fcntl.h>
 #include <unistd.h>
 #include <sys/mount.h>
+#include <linux/string.h>
 
 #include "fs.h"
 #include "debug-internal.h"
@@ -219,7 +220,7 @@ static bool fs__env_override(struct fs *fs)
                return false;
 
        fs->found = true;
-       strncpy(fs->path, override_path, sizeof(fs->path));
+       strlcpy(fs->path, override_path, sizeof(fs->path));
        return true;
 }