btrfs-progs: fix memory leak in cmd_qgroup_show()
authorEryu Guan <guaneryu@gmail.com>
Mon, 19 Oct 2015 11:37:59 +0000 (19:37 +0800)
committerDavid Sterba <dsterba@suse.com>
Mon, 2 Nov 2015 08:35:03 +0000 (09:35 +0100)
filter_set and comparer_set should be freed on return.

Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: David Sterba <dsterba@suse.com>
cmds-qgroup.c
qgroup.c

index 0ad99f4..a64b716 100644 (file)
@@ -348,8 +348,11 @@ static int cmd_qgroup_show(int argc, char **argv)
 
        path = argv[optind];
        fd = btrfs_open_dir(path, &dirstream, 1);
-       if (fd < 0)
+       if (fd < 0) {
+               btrfs_qgroup_free_filter_set(filter_set);
+               btrfs_qgroup_free_comparer_set(comparer_set);
                return 1;
+       }
 
        if (filter_flag) {
                qgroupid = btrfs_get_path_rootid(fd);
index 99fddea..1fbfcb9 100644 (file)
--- a/qgroup.c
+++ b/qgroup.c
@@ -1208,6 +1208,7 @@ int btrfs_show_qgroups(int fd,
 
        __free_all_qgroups(&qgroup_lookup);
        btrfs_qgroup_free_filter_set(filter_set);
+       btrfs_qgroup_free_comparer_set(comp_set);
        return ret;
 }