forked from Imagelibrary/binutils-gdb
Re: USE_MMAP fuzzed object file attacks
I committed a broken patch. * aoutx.h (aout_get_external_symbols): Remove wrong #else and unneeded casts. * pdp11.c (aout_get_external_symbols): Likewise.
This commit is contained in:
@@ -1322,21 +1322,20 @@ aout_get_external_symbols (bfd *abfd)
|
|||||||
if (! bfd_get_file_window (abfd, obj_sym_filepos (abfd), amt,
|
if (! bfd_get_file_window (abfd, obj_sym_filepos (abfd), amt,
|
||||||
&obj_aout_sym_window (abfd), true))
|
&obj_aout_sym_window (abfd), true))
|
||||||
return false;
|
return false;
|
||||||
syms = (struct external_nlist *) obj_aout_sym_window (abfd).data;
|
syms = obj_aout_sym_window (abfd).data;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#else
|
#endif
|
||||||
{
|
{
|
||||||
/* We allocate using malloc to make the values easy to free
|
/* We allocate using malloc to make the values easy to free
|
||||||
later on. If we put them on the objalloc it might not be
|
later on. If we put them on the objalloc it might not be
|
||||||
possible to free them. */
|
possible to free them. */
|
||||||
if (bfd_seek (abfd, obj_sym_filepos (abfd), SEEK_SET) != 0)
|
if (bfd_seek (abfd, obj_sym_filepos (abfd), SEEK_SET) != 0)
|
||||||
return false;
|
return false;
|
||||||
syms = (struct external_nlist *) _bfd_malloc_and_read (abfd, amt, amt);
|
syms = _bfd_malloc_and_read (abfd, amt, amt);
|
||||||
if (syms == NULL)
|
if (syms == NULL)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
obj_aout_external_syms (abfd) = syms;
|
obj_aout_external_syms (abfd) = syms;
|
||||||
obj_aout_external_sym_count (abfd) = count;
|
obj_aout_external_sym_count (abfd) = count;
|
||||||
|
|||||||
@@ -1299,21 +1299,20 @@ aout_get_external_symbols (bfd *abfd)
|
|||||||
if (! bfd_get_file_window (abfd, obj_sym_filepos (abfd), amt,
|
if (! bfd_get_file_window (abfd, obj_sym_filepos (abfd), amt,
|
||||||
&obj_aout_sym_window (abfd), true))
|
&obj_aout_sym_window (abfd), true))
|
||||||
return false;
|
return false;
|
||||||
syms = (struct external_nlist *) obj_aout_sym_window (abfd).data;
|
syms = obj_aout_sym_window (abfd).data;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#else
|
#endif
|
||||||
{
|
{
|
||||||
/* We allocate using malloc to make the values easy to free
|
/* We allocate using malloc to make the values easy to free
|
||||||
later on. If we put them on the objalloc it might not be
|
later on. If we put them on the objalloc it might not be
|
||||||
possible to free them. */
|
possible to free them. */
|
||||||
if (bfd_seek (abfd, obj_sym_filepos (abfd), SEEK_SET) != 0)
|
if (bfd_seek (abfd, obj_sym_filepos (abfd), SEEK_SET) != 0)
|
||||||
return false;
|
return false;
|
||||||
syms = (struct external_nlist *) _bfd_malloc_and_read (abfd, amt, amt);
|
syms = _bfd_malloc_and_read (abfd, amt, amt);
|
||||||
if (syms == NULL)
|
if (syms == NULL)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
obj_aout_external_syms (abfd) = syms;
|
obj_aout_external_syms (abfd) = syms;
|
||||||
obj_aout_external_sym_count (abfd) = count;
|
obj_aout_external_sym_count (abfd) = count;
|
||||||
|
|||||||
Reference in New Issue
Block a user