grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] affs: Fix resource leaks


From: Darren Kenny
Subject: Re: [PATCH] affs: Fix resource leaks
Date: Thu, 03 Feb 2022 11:58:42 +0000

Hi Alec,

Don't know how I ended up missing this originally, but thanks for fixing
it, so:

Reviewed-by: Darren Kenny <darren.kenny@oracle.com>

Thanks,

Darren.

On Wednesday, 2022-02-02 at 19:08:21 -05, Alec Brown wrote:
> In commit 178ac5107389 (affs: Fix memory leaks), fixes were made to
> grub_affs_iterate_dir() to prevent memory leaks from occuring after it returns
> without freeing node. However, there were still some instances where node was
> causing a memory leak when the function returns after calling
> grub_affs_create_node(). In this function, new memory is allocated to node but
> doesn't get freed until the hook() function is called near the end. Before
> hook() is called, node should be freed in grub_affs_create_node() before
> returning out of it.
>
> Fixes: 178ac5107389 (affs: Fix memory leaks)
> Fixes: CID 73759
>
> Signed-off-by: Alec Brown <alec.r.brown@oracle.com>
> ---
>  grub-core/fs/affs.c | 15 ++++++++++++---
>  1 file changed, 12 insertions(+), 3 deletions(-)
>
> diff --git a/grub-core/fs/affs.c b/grub-core/fs/affs.c
> index cafcd0fba..7b9e62064 100644
> --- a/grub-core/fs/affs.c
> +++ b/grub-core/fs/affs.c
> @@ -370,17 +370,26 @@ grub_affs_create_node (grub_fshelp_node_t dir,
>                                 GRUB_DISK_SECTOR_SIZE - 
> GRUB_AFFS_FILE_LOCATION,
>                                 sizeof ((*node)->di), (char *) &(*node)->di);
>           if (err)
> -           return 1;
> +           {
> +             grub_free (*node);
> +             return 1;
> +           }
>           continue;
>         }
>       default:
> -       return 0;
> +       {
> +         grub_free (*node);
> +         return 0;
> +       }
>       }
>        break;
>      }
>  
>    if (nest == 8)
> -    return 0;
> +    {
> +      grub_free (*node);
> +      return 0;
> +    }
>  
>    type |= GRUB_FSHELP_CASE_INSENSITIVE;
>  
> -- 
> 2.27.0



reply via email to

[Prev in Thread] Current Thread [Next in Thread]