From 27cc28f94b69c07ac6c4b1834c2e65538dbbcc3a Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Tue, 27 Jan 2009 16:37:10 +0000 Subject: [PATCH] * mach-o.c (bfd_mach_o_archive_p): Restrict the number of architectures in the archive. --- bfd/ChangeLog | 5 +++++ bfd/mach-o.c | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 41cee38341b..f6102d57e2d 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2009-01-27 Andreas Schwab + + * mach-o.c (bfd_mach_o_archive_p): Restrict the number of + architectures in the archive. + 2009-01-27 Hans-Peter Nilsson * elf32-cris.c (cris_elf_relocate_section) diff --git a/bfd/mach-o.c b/bfd/mach-o.c index 9ae1bba1f75..e0a6fa4772f 100644 --- a/bfd/mach-o.c +++ b/bfd/mach-o.c @@ -2098,6 +2098,11 @@ bfd_mach_o_archive_p (bfd *abfd) adata->nfat_arch = bfd_getb32 (buf + 4); if (adata->magic != 0xcafebabe) goto error; + /* Avoid matching Java bytecode files, which have the same magic number. + In the Java bytecode file format this field contains the JVM version, + which starts at 43.0. */ + if (adata->nfat_arch > 30) + goto error; adata->archentries = bfd_alloc (abfd, adata->nfat_arch * sizeof (mach_o_fat_archentry)); -- 2.30.2