addr2line: Set scopes to NULL after free in handle_address.
authorMark Wielaard <mjw@redhat.com>
Thu, 21 May 2015 14:05:18 +0000 (16:05 +0200)
committerMark Wielaard <mjw@redhat.com>
Wed, 27 May 2015 15:17:51 +0000 (17:17 +0200)
If dwarf_getscopes_die () fails then scopes might not be reset and we
could cause a double free.

Signed-off-by: Mark Wielaard <mjw@redhat.com>
src/ChangeLog
src/addr2line.c

index c93d54d..ee18007 100644 (file)
@@ -1,3 +1,7 @@
+2015-05-21  Mark Wielaard  <mjw@redhat.com>
+
+       * addr2line.c (handle_address): Set scopes to NULL after free.
+
 2015-05-20  Mark Wielaard  <mjw@redhat.com>
 
        * addr2line.c (OPT_PRETTY): New constant define.
index fc2ff28..97f988f 100644 (file)
@@ -744,6 +744,7 @@ handle_address (const char *string, Dwfl *dwfl)
          dwarf_offdie (dwfl_module_getdwarf (mod, &bias),
                        dieoff, &subroutine);
          free (scopes);
+         scopes = NULL;
 
          nscopes = dwarf_getscopes_die (&subroutine, &scopes);
          if (nscopes > 1)