mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-17 16:05:56 +08:00
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.
This commit is contained in:
@ -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>
|
2015-01-26 Kuan-Lin Chen <kuanlinchentw@gmail.com>
|
||||||
|
|
||||||
* elf32-nds32.c (nds32_elf_pick_relax): Fix again setting.
|
* elf32-nds32.c (nds32_elf_pick_relax): Fix again setting.
|
||||||
|
@ -1189,6 +1189,9 @@ aout_get_external_symbols (bfd *abfd)
|
|||||||
|
|
||||||
count = exec_hdr (abfd)->a_syms / EXTERNAL_NLIST_SIZE;
|
count = exec_hdr (abfd)->a_syms / EXTERNAL_NLIST_SIZE;
|
||||||
|
|
||||||
|
/* PR 17512: file: 011f5a08. */
|
||||||
|
if (count == 0)
|
||||||
|
return FALSE;
|
||||||
#ifdef USE_MMAP
|
#ifdef USE_MMAP
|
||||||
if (! bfd_get_file_window (abfd, obj_sym_filepos (abfd),
|
if (! bfd_get_file_window (abfd, obj_sym_filepos (abfd),
|
||||||
exec_hdr (abfd)->a_syms,
|
exec_hdr (abfd)->a_syms,
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
2015-01-27 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
|
PR binutils/17512
|
||||||
|
* dlltool.c (identify_search_archive): If the last archive was the
|
||||||
|
same as the current archive, terminate the loop.
|
||||||
|
|
||||||
2015-01-23 Nick Clifton <nickc@redhat.com>
|
2015-01-23 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
* nlmconv.c (powerpc_mangle_relocs): Fix build errors introduced
|
* nlmconv.c (powerpc_mangle_relocs): Fix build errors introduced
|
||||||
|
@ -3589,7 +3589,15 @@ identify_search_archive (bfd * abfd,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (last_arfile != NULL)
|
if (last_arfile != NULL)
|
||||||
bfd_close (last_arfile);
|
{
|
||||||
|
bfd_close (last_arfile);
|
||||||
|
/* PR 17512: file: 8b2168d4. */
|
||||||
|
if (last_arfile == arfile)
|
||||||
|
{
|
||||||
|
last_arfile = NULL;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
last_arfile = arfile;
|
last_arfile = arfile;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user