[U-Boot] [PATCH v3 11/13] ext4: Fix memory leak in case of failure

Lukasz Majewski l.majewski at samsung.com
Mon Aug 29 16:09:11 CEST 2016


Hi Stefan,

> temp_ptr should always be freed, even if the function is left via
> goto fail.
> 
> Signed-off-by: Stefan Brüns <stefan.bruens at rwth-aachen.de>
> ---
>  fs/ext4/ext4_write.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> v3: Patch added to series
> 
> diff --git a/fs/ext4/ext4_write.c b/fs/ext4/ext4_write.c
> index 50c8415..5e208ef 100644
> --- a/fs/ext4/ext4_write.c
> +++ b/fs/ext4/ext4_write.c
> @@ -974,7 +974,6 @@ int ext4fs_write(const char *fname, unsigned char
> *buffer, sizeof(struct ext2_inode));
>  		if (ext4fs_put_metadata(temp_ptr,
> parent_itable_blkno)) goto fail;
> -		free(temp_ptr);
>  	} else {
>  		/*
>  		 * If parent and child fall in same inode table block
> @@ -985,7 +984,6 @@ int ext4fs_write(const char *fname, unsigned char
> *buffer, gd_index--;
>  		if (ext4fs_put_metadata(temp_ptr, itable_blkno))
>  			goto fail;
> -		free(temp_ptr);
>  	}
>  	ext4fs_update();
>  	ext4fs_deinit();
> @@ -996,6 +994,7 @@ int ext4fs_write(const char *fname, unsigned char
> *buffer, fs->curr_inode_no = 0;
>  	free(inode_buffer);
>  	free(g_parent_inode);
> +	free(temp_ptr);
>  	g_parent_inode = NULL;
>  
>  	return 0;
> @@ -1003,6 +1002,7 @@ fail:
>  	ext4fs_deinit();
>  	free(inode_buffer);
>  	free(g_parent_inode);
> +	free(temp_ptr);
>  	g_parent_inode = NULL;
>  
>  	return -1;

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

-- 
Best regards,

Lukasz Majewski

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


More information about the U-Boot mailing list