Wang Sheng-Hui
2012-Oct-25 02:59 UTC
[PATCH] btrfs-progs: avoid memory leak in find_and_setup_log_root
In find_and_setup_log_root, the malloced log_root would be leaked if we have bytenr = 0, which would happen at our mkfs stage. Move the memory allocation after the bytenr check, and add allocation failure check. Signed-off-by: Wang Sheng-Hui <shhuiw@gmail.com> --- disk-io.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) diff --git a/disk-io.c b/disk-io.c index 0395205..3a80284 100644 --- a/disk-io.c +++ b/disk-io.c @@ -456,11 +456,15 @@ static int find_and_setup_log_root(struct btrfs_root *tree_root, { u32 blocksize; u64 blocknr = btrfs_super_log_root(disk_super); - struct btrfs_root *log_root = malloc(sizeof(struct btrfs_root)); + struct btrfs_root *log_root = NULL; if (blocknr == 0) return 0; + log_root = malloc(sizeof(struct btrfs_root)); + if (!log_root) + return -ENOMEM; + blocksize = btrfs_level_size(tree_root, btrfs_super_log_root_level(disk_super)); -- 1.7.5.4 -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html