lib/canonicalize.c: In function ‘canonicalize_dm_name’: lib/canonicalize.c:42:45: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 244 [-Wformat-truncation=] snprintf(path, sizeof(path), "/dev/mapper/%s", name); Notice that this warnign fix does not improve code enormously. The earlier snprintf() truncation will not happen a bit earlier when fgets() is called. In that sense this change merely makes one easy to silence warning to disappear, and therefore improve change of noticing useful messaging as such crops up. Signed-off-by: Sami Kerola <kerolasa@xxxxxx> --- lib/canonicalize.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/canonicalize.c b/lib/canonicalize.c index b600248c7..6cfcf4bca 100644 --- a/lib/canonicalize.c +++ b/lib/canonicalize.c @@ -16,6 +16,7 @@ #include <sys/stat.h> #include "canonicalize.h" +#define mapper "/dev/mapper/" /* * Converts private "dm-N" names to "/dev/mapper/<name>" @@ -27,7 +28,7 @@ char *canonicalize_dm_name(const char *ptname) { FILE *f; size_t sz; - char path[256], name[256], *res = NULL; + char path[256], name[sizeof(path) - sizeof(mapper)], *res = NULL; if (!ptname || !*ptname) return NULL; @@ -39,7 +40,7 @@ char *canonicalize_dm_name(const char *ptname) /* read "<name>\n" from sysfs */ if (fgets(name, sizeof(name), f) && (sz = strlen(name)) > 1) { name[sz - 1] = '\0'; - snprintf(path, sizeof(path), "/dev/mapper/%s", name); + snprintf(path, sizeof(path), mapper "%s", name); if (access(path, F_OK) == 0) res = strdup(path); -- 2.17.0 -- To unsubscribe from this list: send the line "unsubscribe util-linux" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html