btrfs-progs: zero out structures before calling ioctl
authorDavid Sterba <dsterba@suse.cz>
Thu, 24 Apr 2014 16:37:50 +0000 (18:37 +0200)
committerDavid Sterba <dsterba@suse.cz>
Thu, 4 Dec 2014 15:48:11 +0000 (16:48 +0100)
Signed-off-by: David Sterba <dsterba@suse.cz>
cmds-fi-disk_usage.c

index 8bc4f58..f984be8 100644 (file)
@@ -248,7 +248,7 @@ static struct btrfs_ioctl_space_args *load_space_info(int fd, char *path)
        struct btrfs_ioctl_space_args *sargs = 0, *sargs_orig = 0;
        int e, ret, count;
 
-       sargs_orig = sargs = malloc(sizeof(struct btrfs_ioctl_space_args));
+       sargs_orig = sargs = calloc(1, sizeof(struct btrfs_ioctl_space_args));
        if (!sargs) {
                fprintf(stderr, "ERROR: not enough memory\n");
                return NULL;
@@ -476,15 +476,15 @@ int load_device_info(int fd, struct device_info **device_info_ptr,
                return -1;
        }
 
-       info = malloc(sizeof(struct device_info) * fi_args.num_devices);
+       info = calloc(fi_args.num_devices, sizeof(struct device_info));
        if (!info) {
                fprintf(stderr, "ERROR: not enough memory\n");
                return -1;
        }
 
        for (i = 0, ndevs = 0 ; i <= fi_args.max_id ; i++) {
-
                BUG_ON(ndevs >= fi_args.num_devices);
+               memset(&dev_info, 0, sizeof(dev_info));
                ret = get_device_info(fd, i, &dev_info);
 
                if (ret == -ENODEV)