ext4: fix leak in check_filename()
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@nvidia.com> Acked-by: Lukasz Majewski <l.majewski@samsung.com> Tested-by: Lukasz Majewski <l.majewski@samsung.com>utp
parent
934b14f2bb
commit
d56b2015e6
|
@ -770,6 +770,7 @@ static int check_filename(char *filename, unsigned int blknr)
|
||||||
struct ext2_dirent *previous_dir = NULL;
|
struct ext2_dirent *previous_dir = NULL;
|
||||||
char *ptr = NULL;
|
char *ptr = NULL;
|
||||||
struct ext_filesystem *fs = get_fs();
|
struct ext_filesystem *fs = get_fs();
|
||||||
|
int ret = -1;
|
||||||
|
|
||||||
/* get the first block of root */
|
/* get the first block of root */
|
||||||
first_block_no_of_root = blknr;
|
first_block_no_of_root = blknr;
|
||||||
|
@ -823,12 +824,12 @@ static int check_filename(char *filename, unsigned int blknr)
|
||||||
if (ext4fs_put_metadata(root_first_block_addr,
|
if (ext4fs_put_metadata(root_first_block_addr,
|
||||||
first_block_no_of_root))
|
first_block_no_of_root))
|
||||||
goto fail;
|
goto fail;
|
||||||
return inodeno;
|
ret = inodeno;
|
||||||
}
|
}
|
||||||
fail:
|
fail:
|
||||||
free(root_first_block_buffer);
|
free(root_first_block_buffer);
|
||||||
|
|
||||||
return -1;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ext4fs_filename_check(char *filename)
|
int ext4fs_filename_check(char *filename)
|
||||||
|
|
Loading…
Reference in New Issue