btrfs-progs: avoid double-free in __btrfs_map_block

__btrfs_map_block() can possibly do the goto again: loop after
having allocated & freed the "multi" pointer.  There are then
a couple error conditions where it will attempt to again kfree
the now non-NULL multi pointer.  So before retrying, reset
multi to NULL after we free it.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
master
Eric Sandeen 2013-02-25 16:54:38 -06:00 committed by David Sterba
parent b808cb66aa
commit bbf1919b00
1 changed files with 1 additions and 0 deletions

View File

@ -1226,6 +1226,7 @@ again:
if (multi_ret && stripes_allocated < stripes_required) {
stripes_allocated = stripes_required;
kfree(multi);
multi = NULL;
goto again;
}
stripe_nr = offset;