On Sat, Nov 19, 2022 at 06:39:40PM +0800, t.feng via Grub-devel wrote:
> Fix memory leaks in grub_minix_lookup_symlink.
>
> Fixes: a07e6ad01(Remove variable length arrays)
>
> Signed-off-by: "t.feng" <fengta...@huawei.com>
> ---
>  grub-core/fs/minix.c | 11 +++++++++--
>  1 file changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/grub-core/fs/minix.c b/grub-core/fs/minix.c
> index 953df1191..2176b6e93 100644
> --- a/grub-core/fs/minix.c
> +++ b/grub-core/fs/minix.c
> @@ -374,7 +374,10 @@ grub_minix_lookup_symlink (struct grub_minix_data *data, 
> grub_minix_ino_t ino)
>    if (!symlink)
>      return grub_errno;
>    if (grub_minix_read_file (data, 0, 0, 0, sz, symlink) < 0)
> -    return grub_errno;
> +    {
> +      grub_free (symlink);
> +      return grub_errno;
> +    }
>
>    symlink[sz] = '\0';
>
> @@ -384,10 +387,14 @@ grub_minix_lookup_symlink (struct grub_minix_data 
> *data, grub_minix_ino_t ino)
>
>    /* Now load in the old inode.  */
>    if (grub_minix_read_inode (data, ino))
> -    return grub_errno;
> +    {
> +      grub_free (symlink);
> +      return grub_errno;
> +    }
>
>    grub_minix_find_file (data, symlink);
>

This could be made simpler. Just add a label "fail" here and grub_free(symlink)
underneath. Then add "goto fail" above.

> +  grub_free (symlink);
>    return grub_errno;
>  }

Daniel

_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to