If dwfl_begin fails we won't use the dwfl_fd descriptor we just dupped. Make sure to close on dwfl_begin failure to avoid the leak.
Signed-off-by: Mark Wielaard <m...@klomp.org> --- src/ChangeLog | 4 ++++ src/nm.c | 2 ++ 2 files changed, 6 insertions(+) diff --git a/src/ChangeLog b/src/ChangeLog index 300deb4f..0cea28e2 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2021-04-03 Mark Wielaard <m...@klomp.org> + + * nm.c (show_symbols): close dwfl_fd if dwfl_begin fails. + 2021-04-03 Mark Wielaard <m...@klomp.org> * unstrip.c (handle_output_dir_module): Free output_file when done. diff --git a/src/nm.c b/src/nm.c index fb761ef3..dc2186db 100644 --- a/src/nm.c +++ b/src/nm.c @@ -1308,6 +1308,8 @@ show_symbols (int fd, Ebl *ebl, GElf_Ehdr *ehdr, dwfl_getmodules (dwfl, &getdbg_dwflmod, &get, 0); } } + else + close (dwfl_fd); } } if (dbg != NULL) -- 2.18.4