From: Mark Wielaard Date: Wed, 6 May 2015 10:45:49 +0000 (+0200) Subject: nm: Handle dwarf_linesrc returning NULL. X-Git-Tag: elfutils-0.162~70 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a3344c7a785888ecd31475efaaf456db41897423;p=thirdparty%2Felfutils.git nm: Handle dwarf_linesrc returning NULL. https://bugzilla.redhat.com/show_bug.cgi?id=1170810#32 Signed-off-by: Mark Wielaard --- diff --git a/src/ChangeLog b/src/ChangeLog index a7cdc3e5e..7a44fc6eb 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2015-05-05 Mark Wielaard + + * nm.c (show_symbols): Handle dwarf_linesrc returning NULL. + 2015-05-04 Max Filippov * ar.c (do_oper_extract): Replace struct timeval with struct timespec diff --git a/src/nm.c b/src/nm.c index b6a1e6ebc..7d20bbbd8 100644 --- a/src/nm.c +++ b/src/nm.c @@ -1297,11 +1297,10 @@ show_symbols (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn, Elf_Scn *xndxscn, /* We found the line. */ int lineno; (void) dwarf_lineno (line, &lineno); + const char *file = dwarf_linesrc (line, NULL, NULL); + file = (file != NULL) ? basename (file) : "???"; int n; - n = obstack_printf (&whereob, "%s:%d%c", - basename (dwarf_linesrc (line, - NULL, - NULL)), + n = obstack_printf (&whereob, "%s:%d%c", file, lineno, '\0'); sym_mem[nentries_used].where = obstack_finish (&whereob);