summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorSami Kerola2018-05-03 23:57:57 +0200
committerKarel Zak2018-05-10 11:20:56 +0200
commitbf99940f649959fcc73590c043d28b1ab0d83e1c (patch)
tree678325ccfd9a2c12d981163f5da0b6d131656df5 /lib
parentdmesg: link together with syslog(2) manual page (diff)
downloadkernel-qcow2-util-linux-bf99940f649959fcc73590c043d28b1ab0d83e1c.tar.gz
kernel-qcow2-util-linux-bf99940f649959fcc73590c043d28b1ab0d83e1c.tar.xz
kernel-qcow2-util-linux-bf99940f649959fcc73590c043d28b1ab0d83e1c.zip
lib/canonicalize: fix truncation warning
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. [kzak@redhat.com: - use macro rather than hardcoded string for mapper path] Signed-off-by: Sami Kerola <kerolasa@iki.fi> Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/canonicalize.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/canonicalize.c b/lib/canonicalize.c
index b600248c7..ef3342b12 100644
--- a/lib/canonicalize.c
+++ b/lib/canonicalize.c
@@ -16,6 +16,7 @@
#include <sys/stat.h>
#include "canonicalize.h"
+#include "pathnames.h"
/*
* 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(_PATH_DEV_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), _PATH_DEV_MAPPER "/%s", name);
if (access(path, F_OK) == 0)
res = strdup(path);