executable with an invalid value in the NumberOfRvaAndSizes field of the
AOUT header.
	PR binutils/17512
	* peXXigen.c (_bfd_XXi_swap_aouthdr_in): Handle corrupt binaries
	with an invalid value for NumberOfRvaAndSizes.
 2014-10-27  Nick Clifton  <nickc@redhat.com>
 
+       PR binutils/17512
+       * peXXigen.c (_bfd_XXi_swap_aouthdr_in): Handle corrupt binaries
+       with an invalid value for NumberOfRvaAndSizes.
+
        PR binutils/17510
        * elf.c (setup_group): Improve handling of corrupt group
        sections.
 
   {
     int idx;
 
+    /* PR 17512: Corrupt PE binaries can cause seg-faults.  */
+    if (a->NumberOfRvaAndSizes > 16)
+      {
+       (*_bfd_error_handler)
+         (_("%B: aout header specifies an invalid number of data-directory entries: %d"),
+          abfd, a->NumberOfRvaAndSizes);
+       /* Paranoia: If the number is corrupt, then assume that the
+          actual entries themselves might be corrupt as well.  */
+       a->NumberOfRvaAndSizes = 0;
+      }
+
+
     for (idx = 0; idx < a->NumberOfRvaAndSizes; idx++)
       {
         /* If data directory is empty, rva also should be 0.  */