From 5c2d867fdcbc11a6862379ebd60b2c1a66e13671 Mon Sep 17 00:00:00 2001 From: Wang Shilong Date: Sun, 31 Mar 2013 10:36:37 +0000 Subject: [PATCH] Btrfs: fix double free in the iterate_extent_inodes() If btrfs_find_all_roots() fails, 'roots' has been freed or 'roots' fails to allocate. We don't need to free it outside btrfs_find_all_roots() again.Fix it. Signed-off-by: Wang Shilong Signed-off-by: Josef Bacik --- fs/btrfs/backref.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/fs/btrfs/backref.c b/fs/btrfs/backref.c index 3dd0693..ba0fee7 100644 --- a/fs/btrfs/backref.c +++ b/fs/btrfs/backref.c @@ -1510,11 +1510,9 @@ int iterate_extent_inodes(struct btrfs_fs_info *fs_info, iterate, ctx); } ulist_free(roots); - roots = NULL; } free_leaf_list(refs); - ulist_free(roots); out: if (!search_commit_root) { btrfs_put_tree_mod_seq(fs_info, &tree_mod_seq_elem); -- 2.7.4