+2020-11-23 Timm Bäder <tbaeder@redhat.com>
+
+ * segment_report_module.c (dwfl_segment_report_module): Remove
+ release_buffer, call memory_callback directly.
+
2020-11-23 Timm Bäder <tbaeder@redhat.com>
* segment_report_module.c (dwfl_segment_report_module): Remove
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;
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. */
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)