[U-Boot] [PATCH 04/10] ext4: fix leak in check_filename()

Lukasz Majewski l.majewski at samsung.com
Tue Sep 8 15:05:25 CEST 2015


Hi Stephen,

> From: Stephen Warren <swarren at nvidia.com>
> 
> root_first_block_buffer should be free()d in all cases, not just when
> an error occurs. Fix the success exit path of the function to do this.
> 
> Signed-off-by: Stephen Warren <swarren at nvidia.com>
> ---
>  fs/ext4/ext4_common.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/fs/ext4/ext4_common.c b/fs/ext4/ext4_common.c
> index b09f23aa5b83..7d7609a91fa8 100644
> --- a/fs/ext4/ext4_common.c
> +++ b/fs/ext4/ext4_common.c
> @@ -769,6 +769,7 @@ static int check_filename(char *filename,
> unsigned int blknr) struct ext2_dirent *previous_dir = NULL;
>  	char *ptr = NULL;
>  	struct ext_filesystem *fs = get_fs();
> +	int ret = -1;
>  
>  	/* get the first block of root */
>  	first_block_no_of_root = blknr;
> @@ -822,12 +823,12 @@ static int check_filename(char *filename,
> unsigned int blknr) if (ext4fs_put_metadata(root_first_block_addr,
>  					first_block_no_of_root))
>  			goto fail;
> -		return inodeno;
> +		ret = inodeno;
>  	}
>  fail:
>  	free(root_first_block_buffer);
>  
> -	return -1;
> +	return ret;
>  }
>  
>  int ext4fs_filename_check(char *filename)

Acked-by: Lukasz Majewski <l.majewski at samsung.com>
Tested-by: Lukasz Majewski <l.majewski at samsung.com>

Test HW: Odroid XU3 - Exynos5433
[DFU tests]

-- 
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group


More information about the U-Boot mailing list