check_module is called from dwfl_module_relocate_address and from dwfl_module_address_section. Both could take a NULL Dwfl_Module if an earlier error had occured. Make check_module return immediately indicating an issue in that case.
Signed-off-by: Mark Wielaard mjw@redhat.com --- libdwfl/ChangeLog | 4 ++++ libdwfl/derelocate.c | 3 +++ 2 files changed, 7 insertions(+)
diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog index 90fc0f3..dec3405 100644 --- a/libdwfl/ChangeLog +++ b/libdwfl/ChangeLog @@ -1,3 +1,7 @@ +2015-05-24 Mark Wielaard mjw@redhat.com + + * derelocate.c (check_module): Check mod is not NULL. + 2015-05-22 Mark Wielaard mjw@redhat.com
* link_map.c (dwfl_link_map_report): Allocate phdrs and dyn with diff --git a/libdwfl/derelocate.c b/libdwfl/derelocate.c index cec9655..4e5a568 100644 --- a/libdwfl/derelocate.c +++ b/libdwfl/derelocate.c @@ -285,6 +285,9 @@ dwfl_module_relocation_info (Dwfl_Module *mod, unsigned int idx, static bool check_module (Dwfl_Module *mod) { + if (mod == NULL) + return true; + if (INTUSE(dwfl_module_getsymtab) (mod) < 0) { Dwfl_Error error = dwfl_errno ();
elfutils-devel@lists.fedorahosted.org