btrfs-progs: convert/ext2: Fix memory leak caused by handled ext2_filsys
authorQu Wenruo <wqu@suse.com>
Wed, 14 Feb 2018 08:09:56 +0000 (16:09 +0800)
committerDavid Sterba <dsterba@suse.com>
Wed, 14 Feb 2018 15:33:31 +0000 (16:33 +0100)
Exposed by convert-test with D=asan.

Unlike btrfs, ext2fs_close() still leaves its ext2_filsys parameter
filled with allocated pointers.

It needs ext2fs_free() to free those pointers.

Issue: #92
Signed-off-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
convert/source-ext2.c

index f5ecd8c..b1492c7 100644 (file)
@@ -95,6 +95,7 @@ static int ext2_open_fs(struct btrfs_convert_context *cctx, const char *name)
        return 0;
 fail:
        ext2fs_close(ext2_fs);
+       ext2fs_free(ext2_fs);
        return -1;
 }
 
@@ -179,6 +180,7 @@ static void ext2_close_fs(struct btrfs_convert_context *cctx)
                cctx->volume_name = NULL;
        }
        ext2fs_close(cctx->fs_data);
+       ext2fs_free(cctx->fs_data);
 }
 
 static u8 ext2_filetype_conversion_table[EXT2_FT_MAX] = {