diff options
Diffstat (limited to 'libdwfl/link_map.c')
| -rw-r--r-- | libdwfl/link_map.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/libdwfl/link_map.c b/libdwfl/link_map.c index e752a5db..fecf616d 100644 --- a/libdwfl/link_map.c +++ b/libdwfl/link_map.c @@ -395,12 +395,17 @@ report_r_debug (uint_fast8_t elfclass, uint_fast8_t elfdata, if (! (*memory_callback) (dwfl, segndx, &buffer, &buffer_available, build_id_vaddr, build_id_len, - memory_callback_arg) - || memcmp (build_id_bits, buffer, build_id_len) != 0) + memory_callback_arg)) + /* File has valid build-id which cannot be verified + in memory. */ + valid = false; + else { - /* File has valid build-id which cannot be verified - in memory. */ - valid = false; + if (memcmp (build_id_bits, buffer, build_id_len) != 0) + /* File has valid build-id which does not match + the one in memory. */ + valid = false; + release_buffer (0); } } |
