mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-30 12:44:10 +08:00
Fix use-after-free error when parsing a corrupt nested archive.
PR 21787 * archive.c (bfd_generic_archive_p): If the bfd does not have the correct magic bytes at the start, set the error to wrong format and clear the format selector before returning NULL.
This commit is contained in:
parent
62a5222fda
commit
909e4e716c
@ -1,3 +1,10 @@
|
||||
2017-07-19 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
PR 21787
|
||||
* archive.c (bfd_generic_archive_p): If the bfd does not have the
|
||||
correct magic bytes at the start, set the error to wrong format
|
||||
and clear the format selector before returning NULL.
|
||||
|
||||
2017-07-19 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
PR 21786
|
||||
|
@ -834,7 +834,12 @@ bfd_generic_archive_p (bfd *abfd)
|
||||
if (strncmp (armag, ARMAG, SARMAG) != 0
|
||||
&& strncmp (armag, ARMAGB, SARMAG) != 0
|
||||
&& ! bfd_is_thin_archive (abfd))
|
||||
return NULL;
|
||||
{
|
||||
bfd_set_error (bfd_error_wrong_format);
|
||||
if (abfd->format == bfd_archive)
|
||||
abfd->format = bfd_unknown;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
tdata_hold = bfd_ardata (abfd);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user