Browse Source

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.
master
Alan Modra 2 years ago
parent
commit
0ab0435fe6
  1. 7
      bfd/aoutx.h
  2. 7
      bfd/pdp11.c

7
bfd/aoutx.h

@ -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;

7
bfd/pdp11.c

@ -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;

Loading…
Cancel
Save