Revert changes in previous deltas that introduced new failures into
the linker testsuite. * aoutx.h (slurp_symbol_table): Revert previous delta. (slurp_reloc_table): Likewise. * compress.c (bfd_get_full_section_contents): Remove file size test. * coffgen.c (coff_get_normalized_symtab): Allow zero-sized symtabs and do not complain about linker generated files.
This commit is contained in:
parent
1fe9dc4519
commit
834107255b
@ -1,3 +1,12 @@
|
||||
2014-11-06 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* aoutx.h (slurp_symbol_table): Revert previous delta.
|
||||
(slurp_reloc_table): Likewise.
|
||||
* compress.c (bfd_get_full_section_contents): Remove file size
|
||||
test.
|
||||
* coffgen.c (coff_get_normalized_symtab): Allow zero-sized symtabs
|
||||
and do not complain about linker generated files.
|
||||
|
||||
2014-11-06 Will Newton <will.newton@linaro.org>
|
||||
|
||||
* elf-attrs.c (_bfd_elf_parse_attributes): Handle zero
|
||||
|
@ -1756,8 +1756,6 @@ NAME (aout, slurp_symbol_table) (bfd *abfd)
|
||||
return TRUE; /* Nothing to do. */
|
||||
|
||||
cached_size *= sizeof (aout_symbol_type);
|
||||
if (cached_size >= (bfd_size_type) bfd_get_size (abfd))
|
||||
return FALSE;
|
||||
cached = (aout_symbol_type *) bfd_zmalloc (cached_size);
|
||||
if (cached == NULL)
|
||||
return FALSE;
|
||||
@ -2309,11 +2307,6 @@ NAME (aout, slurp_reloc_table) (bfd *abfd, sec_ptr asect, asymbol **symbols)
|
||||
if (reloc_size == 0)
|
||||
return TRUE; /* Nothing to be done. */
|
||||
|
||||
/* PR binutils/17512: Do not even try to
|
||||
load the relocs if their size is corrupt. */
|
||||
if (reloc_size + asect->rel_filepos >= (bfd_size_type) bfd_get_size (abfd))
|
||||
return FALSE;
|
||||
|
||||
if (bfd_seek (abfd, asect->rel_filepos, SEEK_SET) != 0)
|
||||
return FALSE;
|
||||
|
||||
|
@ -1622,7 +1622,10 @@ _bfd_coff_get_external_symbols (bfd *abfd)
|
||||
/* PR binutils/17512: Do not even try to load
|
||||
a symbol table bigger than the entire file... */
|
||||
if (size >= (bfd_size_type) bfd_get_size (abfd))
|
||||
{
|
||||
fprintf (stderr, "XXX SIZE FAIL 1\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
syms = bfd_malloc (size);
|
||||
if (syms == NULL)
|
||||
@ -1757,11 +1760,12 @@ coff_get_normalized_symtab (bfd *abfd)
|
||||
return obj_raw_syments (abfd);
|
||||
|
||||
size = obj_raw_syment_count (abfd);
|
||||
if (size == 0)
|
||||
return NULL;
|
||||
/* PR binutils/17512: Do not even try to load
|
||||
a symbol table bigger than the entire file... */
|
||||
if (size >= (bfd_size_type) bfd_get_size (abfd))
|
||||
a symbol table bigger than the entire file...
|
||||
Note - we do not fail on a size of 0. Linker created
|
||||
bfds can have this property and they are not corrupt. */
|
||||
if (size >= (bfd_size_type) bfd_get_size (abfd)
|
||||
&& bfd_get_size (abfd) > 0)
|
||||
return NULL;
|
||||
|
||||
size *= sizeof (combined_entry_type);
|
||||
|
@ -177,14 +177,6 @@ bfd_get_full_section_contents (bfd *abfd, sec_ptr sec, bfd_byte **ptr)
|
||||
switch (sec->compress_status)
|
||||
{
|
||||
case COMPRESS_SECTION_NONE:
|
||||
/* PR binutils/17512: Avoid malloc or file reading errors due to
|
||||
ridiculous section sizes. But ignore linker created objects
|
||||
and bfds with no contents (yet). */
|
||||
if (bfd_get_size (abfd) > 0
|
||||
&& (sec->flags & SEC_LINKER_CREATED) == 0
|
||||
&& sz > (bfd_size_type) bfd_get_size (abfd))
|
||||
return FALSE;
|
||||
|
||||
if (p == NULL)
|
||||
{
|
||||
p = (bfd_byte *) bfd_malloc (sz);
|
||||
|
Loading…
Reference in New Issue
Block a user