mkfs: avoid heap-buffer-read-underrun for zero-length "size" arg

* mkfs.c (parse_size): ./mkfs.btrfs -A '' would read and possibly
write the byte before beginning of strdup'd heap buffer.  All other
size-accepting options were similarly affected.

Reviewed-by: Josef Bacik <josef@redhat.com>
master
Jim Meyering 2012-04-20 21:27:26 +02:00 committed by Hugo Mills
parent 54e345b5c2
commit 8ad8e789fc
2 changed files with 2 additions and 2 deletions

View File

@ -380,7 +380,7 @@ static int cmd_snapshot(int argc, char **argv)
args.fd = fd;
strncpy(args.name, newname, BTRFS_SUBVOL_NAME_MAX);
args.name[BTRFS_PATH_NAME_MAX-1] = 0;
args.name[BTRFS_SUBVOL_NAME_MAX-1] = 0;
res = ioctl(fddst, BTRFS_IOC_SNAP_CREATE_V2, &args);
e = errno;

2
mkfs.c
View File

@ -63,7 +63,7 @@ static u64 parse_size(char *s)
s = strdup(s);
if (!isdigit(s[len - 1])) {
if (len && !isdigit(s[len - 1])) {
c = tolower(s[len - 1]);
switch (c) {
case 'g':