diff options
| -rw-r--r-- | libdwfl/ChangeLog | 6 | ||||
| -rw-r--r-- | libdwfl/dwfl_segment_report_module.c | 9 |
2 files changed, 13 insertions, 2 deletions
diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog index 4de38324..0daf893c 100644 --- a/libdwfl/ChangeLog +++ b/libdwfl/ChangeLog @@ -1,3 +1,9 @@ +2015-06-05 Mark Wielaard <[email protected]> + + * dwfl_segment_report_module.c (dwfl_segment_report_module): + If the note_file exists, but the build_id doesn't match discard + the file and continue reporting. + 2015-06-01 Mark Wielaard <[email protected]> * dwfl_build_id_find_elf.c (__libdwfl_open_by_build_id): Copy path diff --git a/libdwfl/dwfl_segment_report_module.c b/libdwfl/dwfl_segment_report_module.c index 705639d2..a0f07ada 100644 --- a/libdwfl/dwfl_segment_report_module.c +++ b/libdwfl/dwfl_segment_report_module.c @@ -696,8 +696,13 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name, } if (invalid) { - free (build_id); - return finish (); + /* The file was there, but the build_id didn't match. We + still want to report the module, but need to get the ELF + some other way if possible. */ + close (fd); + fd = -1; + elf_end (elf); + elf = NULL; } } |
