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 <[email protected]>
---
 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  <[email protected]>
+
+       * derelocate.c (check_module): Check mod is not NULL.
+
 2015-05-22  Mark Wielaard  <[email protected]>
 
        * 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 ();
-- 
1.8.3.1

Reply via email to