diff options
author | Nick Clifton <nickc@redhat.com> | 2015-01-27 11:30:15 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2015-01-27 11:30:15 +0000 |
commit | 37e3922eed415bbedd2dd6e46308fe9e03417770 (patch) | |
tree | 8abfb2fd6fcbe0fc85278e378abe890aca1553c1 /bfd | |
parent | 20d79870f35f646e87c43d8c4fee936b4e0ed5a6 (diff) | |
download | gdb-37e3922eed415bbedd2dd6e46308fe9e03417770.zip gdb-37e3922eed415bbedd2dd6e46308fe9e03417770.tar.gz gdb-37e3922eed415bbedd2dd6e46308fe9e03417770.tar.bz2 |
Fix memory access violations triggered by running dlltool on corrupt binaries.
PR binutils/17512
* dlltool.c (identify_search_archive): If the last archive was the
same as the current archive, terminate the loop.
* pdp11.c (aout_get_external_symbols): Return false if there are
no symbols.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 6 | ||||
-rw-r--r-- | bfd/pdp11.c | 3 |
2 files changed, 9 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index f2e3ddb..1b14297 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2015-01-27 Nick Clifton <nickc@redhat.com> + + PR binutils/17512 + * pdp11.c (aout_get_external_symbols): Return false if there are + no symbols. + 2015-01-26 Kuan-Lin Chen <kuanlinchentw@gmail.com> * elf32-nds32.c (nds32_elf_pick_relax): Fix again setting. diff --git a/bfd/pdp11.c b/bfd/pdp11.c index c559bee..420c9c3 100644 --- a/bfd/pdp11.c +++ b/bfd/pdp11.c @@ -1189,6 +1189,9 @@ aout_get_external_symbols (bfd *abfd) count = exec_hdr (abfd)->a_syms / EXTERNAL_NLIST_SIZE; + /* PR 17512: file: 011f5a08. */ + if (count == 0) + return FALSE; #ifdef USE_MMAP if (! bfd_get_file_window (abfd, obj_sym_filepos (abfd), exec_hdr (abfd)->a_syms, |