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 -- 2.51.0
