summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libdwfl/ChangeLog6
-rw-r--r--libdwfl/dwfl_segment_report_module.c9
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;
}
}