[PATCH] debuginfod-client.c: add dlclose call to prevent resource leak

Frank Ch. Eigler fche@redhat.com
Fri Nov 1 17:02:47 GMT 2024


Hi -

On Fri, Nov 01, 2024 at 07:37:03PM +0300, Anton Moryakov wrote:
> Previously, the handle debuginfod_so created by dlopen was not closed 
> in all cases, leading to a potential resource leak. This commit adds an 
> additional dlclose call to ensure that the handle is always properly 
> released, whether the symbols are successfully loaded or not.
> 
> Found by RASU JSC.
> 
> Signed-off-by: Maks Mishin <maks.mishinFZ@gmail.com>
> --- a/elfutils/libdwfl/debuginfod-client.c
> +++ b/elfutils/libdwfl/debuginfod-client.c
> @@ -127,5 +127,8 @@ __libdwfl_debuginfod_init (void)
>  	  fp_debuginfod_end = NULL;
>  	  dlclose (debuginfod_so);
>  	}
> +	else{
> +      dlclose (debuginfod_so);
> +    }

This code looks broken.  This dlclose's the shared library even in the
successful dlopen/dlsym case, so subsequent calls through the fp_*
function pointers will all fail.

How has this been tested?!

- FChE



More information about the Elfutils-devel mailing list