Hi Aaron,

On Sun, Sep 07, 2025 at 10:17:29PM -0400, Aaron Merey wrote:
> Within create_dwfl, if dwfl_begin is successful but dwfl_report_offline
> fails, the dwfl * pointer being reported is reset to NULL without calling
> dwfl_end, causing a memory leak.
> 
> Update create_dwfl to call dwfl_end in this case, preventing the leak.
> 
> Signed-off-by: Aaron Merey <[email protected]>
> ---
>  src/readelf.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/src/readelf.c b/src/readelf.c
> index 6b886c59..138ded6b 100644
> --- a/src/readelf.c
> +++ b/src/readelf.c
> @@ -978,6 +978,7 @@ create_dwfl (int fd, const char *fname)
>       error (0, 0, _("failed reading '%s': %s"),
>              fname, dwfl_errmsg (-1));
>        close (dwfl_fd);               /* Consumed on success, not on failure. 
>  */
> +      dwfl_end (dwfl);
>        dwfl = NULL;
>      }
>    else

This looks obviously correct to me.

Thanks,

Mark

Reply via email to