Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d7372780 authored by Eric Sandeen's avatar Eric Sandeen Committed by Chris Mason
Browse files

btrfs: free ulist in qgroup_shared_accounting() error path



If tmp = ulist_alloc(GFP_NOFS) fails, we return without
freeing the previously allocated qgroups = ulist_alloc(GFP_NOFS)
and cause a memory leak.

Signed-off-by: default avatarEric Sandeen <sandeen@redhat.com>
Signed-off-by: default avatarChris Mason <clm@fb.com>
parent b050f9f6
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -1798,8 +1798,10 @@ static int qgroup_shared_accounting(struct btrfs_trans_handle *trans,
		return -ENOMEM;

	tmp = ulist_alloc(GFP_NOFS);
	if (!tmp)
	if (!tmp) {
		ulist_free(qgroups);
		return -ENOMEM;
	}

	btrfs_get_tree_mod_seq(fs_info, &elem);
	ret = btrfs_find_all_roots(trans, fs_info, oper->bytenr, elem.seq,