From: Alan Modra Date: Thu, 16 Apr 2020 08:19:38 +0000 (+0930) Subject: PR25827, Null pointer dereferencing in scan_unit_for_symbols X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=aec72fda3b320c36eb99fc1c4cf95b10fc026729;p=binutils-gdb.git PR25827, Null pointer dereferencing in scan_unit_for_symbols PR 25827 * dwarf2.c (scan_unit_for_symbols): Wrap overlong lines. Don't strdup(0). --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 2cf36f4c3e0..bb6b9f2261c 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2020-04-16 Alan Modra + + PR 25827 + * dwarf2.c (scan_unit_for_symbols): Wrap overlong lines. Don't + strdup(0). + 2020-04-15 Fangrui Song PR binutils/24613 diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c index 3ee753d0aa4..48b1bdc914a 100644 --- a/bfd/dwarf2.c +++ b/bfd/dwarf2.c @@ -3379,18 +3379,20 @@ scan_unit_for_symbols (struct comp_unit *unit) { struct varinfo * spec_var; - spec_var = lookup_var_by_offset (attr.u.val, unit->variable_table); + spec_var = lookup_var_by_offset (attr.u.val, + unit->variable_table); if (spec_var == NULL) { - _bfd_error_handler - (_("DWARF error: could not find variable specification at offset %lx"), - (unsigned long) attr.u.val); + _bfd_error_handler (_("DWARF error: could not find " + "variable specification " + "at offset %lx"), + (unsigned long) attr.u.val); break; } if (var->name == NULL) var->name = spec_var->name; - if (var->file == NULL) + if (var->file == NULL && spec_var->file != NULL) var->file = strdup (spec_var->file); if (var->line == 0) var->line = spec_var->line;