[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