mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-09 04:21:49 +08:00
Fix a segmentation fault triggered by disassembling an EFi file with source included.
* dwarf2.c (_bfd_dwarf2_find_symbol_bias): Check for a NULL symbol table pointer. * coffgen.c (coff_find_nearest_line_with_names): Do not call _bfd_dwarf2_find_symbol_bias if there is no symbol table available. https://bugzilla.redhat.com/show_bug.cgi?id=1685727
This commit is contained in:
parent
aa3cfbda2f
commit
219d6836e9
@ -1,3 +1,10 @@
|
||||
2019-03-06 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* dwarf2.c (_bfd_dwarf2_find_symbol_bias): Check for a NULL symbol
|
||||
table pointer.
|
||||
* coffgen.c (coff_find_nearest_line_with_names): Do not call
|
||||
_bfd_dwarf2_find_symbol_bias if there is no symbol table available.
|
||||
|
||||
2019-03-01 Andreas Krebbel <krebbel@linux.ibm.com>
|
||||
|
||||
This reverts commit 5a12586d44fa8d5dfc74cbca4f2f36a273a16335.
|
||||
|
@ -2294,7 +2294,7 @@ coff_find_nearest_line_with_names (bfd *abfd,
|
||||
information. So try again, using a bias against the address sought. */
|
||||
if (coff_data (abfd)->dwarf2_find_line_info != NULL)
|
||||
{
|
||||
bfd_signed_vma bias;
|
||||
bfd_signed_vma bias = 0;
|
||||
|
||||
/* Create a cache of the result for the next call. */
|
||||
if (sec_data == NULL && section->owner == abfd)
|
||||
@ -2306,10 +2306,11 @@ coff_find_nearest_line_with_names (bfd *abfd,
|
||||
|
||||
if (sec_data != NULL && sec_data->saved_bias)
|
||||
bias = sec_data->saved_bias;
|
||||
else
|
||||
else if (symbols)
|
||||
{
|
||||
bias = _bfd_dwarf2_find_symbol_bias (symbols,
|
||||
& coff_data (abfd)->dwarf2_find_line_info);
|
||||
|
||||
if (sec_data)
|
||||
{
|
||||
sec_data->saved_bias = TRUE;
|
||||
|
@ -4472,7 +4472,7 @@ _bfd_dwarf2_find_symbol_bias (asymbol ** symbols, void ** pinfo)
|
||||
|
||||
stash = (struct dwarf2_debug *) *pinfo;
|
||||
|
||||
if (stash == NULL)
|
||||
if (stash == NULL || symbols == NULL)
|
||||
return 0;
|
||||
|
||||
for (unit = stash->all_comp_units; unit; unit = unit->next_unit)
|
||||
|
Loading…
Reference in New Issue
Block a user