]> err.no Git - util-linux/commitdiff
sfdisk: fix possible buffer overflow
authorKarel Zak <kzak@redhat.com>
Wed, 29 Apr 2009 12:33:52 +0000 (14:33 +0200)
committerKarel Zak <kzak@redhat.com>
Wed, 29 Apr 2009 12:33:52 +0000 (14:33 +0200)
Signed-off-by: Karel Zak <kzak@redhat.com>
fdisk/sfdisk.c

index 2cda03ceb9d225ae53e95c6f5b6dbbe3bce53fbb..da779aa89bb4a6ca8b73e32062d3201e1c69f20a 100644 (file)
@@ -2432,14 +2432,15 @@ is_ide_cdrom_or_tape(char *device) {
 
 static char *
 nextproc(FILE *procf) {
-       static char devname[120];
-       char line[100], ptname[100];
-       int ma, mi, sz;
+       static char devname[256];
+       char line[1024], ptname[128];
+       int ma, mi;
+       unsigned long long sz;
 
        if (procf == NULL)
                return NULL;
        while (fgets(line, sizeof(line), procf) != NULL) {
-               if (sscanf (line, " %d %d %d %[^\n ]",
+               if (sscanf (line, " %d %d %llu %128[^\n ]",
                            &ma, &mi, &sz, ptname) != 4)
                        continue;
                snprintf(devname, sizeof(devname), "/dev/%s", ptname);