[PATCH] fs: squasfs: fix a possible NULL pointer dereference in sqfs_opendir()

Miquel Raynal miquel.raynal at bootlin.com
Fri Dec 18 19:50:09 CET 2020


Hi Richard,

Richard Genoud <richard.genoud at posteo.net> wrote on Fri, 18 Dec 2020
15:24:40 +0100:

> token_count may be != 0 and token_list not yet allocated when the out
> code is reached

Wouldn't it be better to initialize token_count than adding an
(obscure) indentation level?

> 
> Reported-by: Coverity CID 313547
> Fixes: ea1b1651c6a8 ("fs/squashfs: sqfs_opendir: simplify error handling")
> Signed-off-by: Richard Genoud <richard.genoud at posteo.net>
> ---
>  fs/squashfs/sqfs.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/fs/squashfs/sqfs.c b/fs/squashfs/sqfs.c
> index 608a2bb454c..c47046b76e5 100644
> --- a/fs/squashfs/sqfs.c
> +++ b/fs/squashfs/sqfs.c
> @@ -949,8 +949,9 @@ int sqfs_opendir(const char *filename, struct fs_dir_stream **dirsp)
>  	*dirsp = (struct fs_dir_stream *)dirs;
>  
>  out:
> -	for (j = 0; j < token_count; j++)
> -		free(token_list[j]);
> +	if (token_list)
> +		for (j = 0; j < token_count; j++)
> +			free(token_list[j]);
>  	free(token_list);
>  	free(pos_list);
>  	free(path);

Thanks,
Miquèl


More information about the U-Boot mailing list