dwarf_getscopes returns the number of scope DIEs containing a PC address.
It returns -1 for errors or 0 if no scopes match PC. If dwarf_getscopes
returned 0, then scopes will not be allocated and handle_address might free
the uninitialized scopes pointer. Make sure it always has a defined value.
Signed-off-by: Mark Wielaard <mjw@redhat.com>
+2014-01-20 Mark Wielaard <mjw@redhat.com>
+
+ * addr2line.c (handle_address): Initialize scopes to NULL.
+
2014-01-17 Roland McGrath <roland@redhat.com>
* strip.c (handle_elf): Check for bogus values in sh_link, sh_info,
Dwarf_Addr bias = 0;
Dwarf_Die *cudie = dwfl_module_addrdie (mod, addr, &bias);
- Dwarf_Die *scopes;
+ Dwarf_Die *scopes = NULL;
int nscopes = dwarf_getscopes (cudie, addr - bias, &scopes);
if (nscopes < 0)
return 1;