]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
misc: fix gcc-7 sprintf warnings -Wformat-overflow
authorRuediger Meier <ruediger.meier@ga-group.nl>
Sun, 11 Jun 2017 20:20:24 +0000 (22:20 +0200)
committerKarel Zak <kzak@redhat.com>
Wed, 14 Jun 2017 09:48:22 +0000 (11:48 +0200)
../login-utils/last.c: In function ‘main’:
../login-utils/last.c:624:23: warning: ‘%s’ directive writing up to 31 bytes into a region of size 27 [-Wformat-overflow=]
   sprintf(path, "/dev/%s", ut->ut_line);
                       ^~   ~~
../login-utils/last.c:624:3: note: ‘sprintf’ output between 6 and 37 bytes into a destination of size 32
   sprintf(path, "/dev/%s", ut->ut_line);

../libblkid/src/devname.c: In function 'probe_one':
../libblkid/src/devname.c:166:29: warning: '%s' directive writing up to 255 bytes into a region of size 245 [-Wformat-overflow=]
   sprintf(path, "/sys/block/%s/slaves", de->d_name);
                             ^~
../libblkid/src/devname.c:166:3: note: 'sprintf' output between 19 and 274 bytes into a destination of size 256
   sprintf(path, "/sys/block/%s/slaves", de->d_name);
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Signed-off-by: Ruediger Meier <ruediger.meier@ga-group.nl>
libblkid/src/devname.c
login-utils/last.c

index ba3c57a4197e1843534477fc2e4f0f0b4bfb416a..59029ec06543944c67527ded16b610c22539cdb8 100644 (file)
@@ -152,7 +152,7 @@ static int is_dm_leaf(const char *devname)
 {
        struct dirent   *de, *d_de;
        DIR             *dir, *d_dir;
-       char            path[256];
+       char            path[NAME_MAX + 18 + 1];
        int             ret = 1;
 
        if ((dir = opendir("/sys/block")) == NULL)
index f93ec7fbfcfe5561170b15357f3abec63924caf1..c90b574e5130788e6dc61d37d14f8cfab42513be 100644 (file)
@@ -598,7 +598,7 @@ static void __attribute__((__noreturn__)) usage(const struct last_control *ctl,
 static int is_phantom(const struct last_control *ctl, struct utmpx *ut)
 {
        struct passwd *pw;
-       char path[32];
+       char path[sizeof(ut->ut_line) + 16];
        int ret = 0;
 
        if (ut->ut_tv.tv_sec < ctl->boot_time.tv_sec)