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

Commit 2423fdfb authored by Jiri Slaby's avatar Jiri Slaby Committed by Chris Mason
Browse files

Btrfs, fix memory leaks in error paths



Stanse found 2 memory leaks in relocate_block_group and
__btrfs_map_block. cluster and multi are not freed/assigned on all
paths. Fix that.

Signed-off-by: default avatarJiri Slaby <jslaby@suse.cz>
Cc: linux-btrfs@vger.kernel.org
Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
parent a038fab0
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -3281,8 +3281,10 @@ static noinline_for_stack int relocate_block_group(struct reloc_control *rc)
		return -ENOMEM;

	path = btrfs_alloc_path();
	if (!path)
	if (!path) {
		kfree(cluster);
		return -ENOMEM;
	}

	rc->extents_found = 0;
	rc->extents_skipped = 0;
+3 −1
Original line number Diff line number Diff line
@@ -2649,8 +2649,10 @@ again:
	em = lookup_extent_mapping(em_tree, logical, *length);
	read_unlock(&em_tree->lock);

	if (!em && unplug_page)
	if (!em && unplug_page) {
		kfree(multi);
		return 0;
	}

	if (!em) {
		printk(KERN_CRIT "unable to find logical %llu len %llu\n",