Nick Clifton 25d3f6
--- binutils.orig/bfd/peXXigen.c	2018-07-11 14:28:44.937231840 +0100
Nick Clifton 25d3f6
+++ binutils-2.29.1/bfd/peXXigen.c	2018-07-11 14:29:27.861771394 +0100
Nick Clifton 25d3f6
@@ -2992,6 +2992,16 @@ _bfd_XX_bfd_copy_private_bfd_data_common
Nick Clifton 25d3f6
 	      return FALSE;
Nick Clifton 25d3f6
 	    }
Nick Clifton 25d3f6
 
Nick Clifton 25d3f6
+	  /* PR 23110.  */
Nick Clifton 25d3f6
+	  else if (ope->pe_opthdr.DataDirectory[PE_DEBUG_DATA].Size < 0)
Nick Clifton 25d3f6
+	    {
Nick Clifton 25d3f6
+	      /* xgettext:c-format */
Nick Clifton 25d3f6
+	      _bfd_error_handler
Nick Clifton 25d3f6
+		(_("%pB: Data Directory size (%#lx) is negative"),
Nick Clifton 25d3f6
+		 obfd, ope->pe_opthdr.DataDirectory[PE_DEBUG_DATA].Size);
Nick Clifton 25d3f6
+	      return FALSE;
Nick Clifton 25d3f6
+	    }
Nick Clifton 25d3f6
+
Nick Clifton 25d3f6
           for (i = 0; i < ope->pe_opthdr.DataDirectory[PE_DEBUG_DATA].Size
Nick Clifton 25d3f6
 		 / sizeof (struct external_IMAGE_DEBUG_DIRECTORY); i++)
Nick Clifton 25d3f6
             {