Nick Clifton b1b97a
*** ../binutils-2.24.orig/bfd/compress.c	2014-04-28 16:35:20.429816317 +0100
Nick Clifton b1b97a
--- bfd/compress.c	2014-04-28 16:36:06.450963028 +0100
Nick Clifton b1b97a
***************
Nick Clifton b1b97a
*** 25,30 ****
Nick Clifton b1b97a
--- 25,31 ----
Nick Clifton b1b97a
  #ifdef HAVE_ZLIB_H
Nick Clifton b1b97a
  #include <zlib.h>
Nick Clifton b1b97a
  #endif
Nick Clifton b1b97a
+ #include "safe-ctype.h"
Nick Clifton b1b97a
  
Nick Clifton b1b97a
  #ifdef HAVE_ZLIB_H
Nick Clifton b1b97a
  static bfd_boolean
Nick Clifton b1b97a
*************** bfd_is_section_compressed (bfd *abfd, se
Nick Clifton b1b97a
*** 304,309 ****
Nick Clifton b1b97a
--- 305,319 ----
Nick Clifton b1b97a
    compressed = (bfd_get_section_contents (abfd, sec, compressed_buffer, 0, 12)
Nick Clifton b1b97a
  		&& CONST_STRNEQ ((char*) compressed_buffer, "ZLIB"));
Nick Clifton b1b97a
  
Nick Clifton b1b97a
+   /* Check for the pathalogical case of a debug string section that
Nick Clifton b1b97a
+      contains the string ZLIB.... as the first entry.  We assume that
Nick Clifton b1b97a
+      no uncompressed .debug_str section would ever be big enough to
Nick Clifton b1b97a
+      have the first byte of its (big-endian) size be non-zero.  */
Nick Clifton b1b97a
+   if (compressed
Nick Clifton b1b97a
+       && strcmp (sec->name, ".debug_str") == 0
Nick Clifton b1b97a
+       && ISPRINT (compressed_buffer[4]))
Nick Clifton b1b97a
+     compressed = FALSE;
Nick Clifton b1b97a
+ 
Nick Clifton b1b97a
    /* Restore compress_status.  */
Nick Clifton b1b97a
    sec->compress_status = saved;
Nick Clifton b1b97a
    return compressed;