From: Timm Bäder <tbae...@redhat.com> Signed-off-by: Timm Bäder <tbae...@redhat.com> --- libdwfl/dwfl_segment_report_module.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-)
diff --git a/libdwfl/dwfl_segment_report_module.c b/libdwfl/dwfl_segment_report_module.c index c587efd7..848c3bec 100644 --- a/libdwfl/dwfl_segment_report_module.c +++ b/libdwfl/dwfl_segment_report_module.c @@ -257,13 +257,6 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name, GElf_Addr start = dwfl->lookup_addr[segment]; - inline void release_buffer (void **buffer, size_t *buffer_available) - { - if (*buffer != NULL) - (*memory_callback) (dwfl, -1, buffer, buffer_available, 0, 0, - memory_callback_arg); - } - /* First read in the file header and check its sanity. */ void *buffer = NULL; @@ -306,8 +299,8 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name, inline void finish_portion (void **data, size_t *data_size) { - if (*data_size != 0) - release_buffer (data, data_size); + if (*data_size != 0 && *data != NULL) + (*memory_callback) (dwfl, -1, data, data_size, 0, 0, memory_callback_arg); } /* Extract the information we need from the file header. */ @@ -960,7 +953,10 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name, out: free (phdrsp); - release_buffer (&buffer, &buffer_available); + if (buffer != NULL) + (*memory_callback) (dwfl, -1, &buffer, &buffer_available, 0, 0, + memory_callback_arg); + if (elf != NULL) elf_end (elf); if (fd != -1) -- 2.26.2