diff options
author | Andrew Hsieh <andrewhsieh@google.com> | 2014-12-09 17:57:18 +0800 |
---|---|---|
committer | Andrew Hsieh <andrewhsieh@google.com> | 2014-12-09 19:50:14 +0800 |
commit | 5e8c1cf25beccac1d22d10dc866912394f42771b (patch) | |
tree | ee16b70f804484dc8e434e647e699ab50da2620f /binutils-2.25/bfd/compress.c | |
parent | 8eebd7953384e6662ca926b003f2cdda8ccd3ee5 (diff) | |
download | toolchain_binutils-5e8c1cf25beccac1d22d10dc866912394f42771b.zip toolchain_binutils-5e8c1cf25beccac1d22d10dc866912394f42771b.tar.gz toolchain_binutils-5e8c1cf25beccac1d22d10dc866912394f42771b.tar.bz2 |
[2.25] sync to a30720e3e633f275250e26f85ccae5dbdddfb6c6
local patches will be re-applied later
commit a30720e3e633f275250e26f85ccae5dbdddfb6c6
Author: Alan Modra <amodra@gmail.com>
Date: Wed Nov 19 10:30:16 2014 +1030
daily update
Change-Id: Ieb2a3f4dd2ecb289ac5305ff08d428b2847494ab
Diffstat (limited to 'binutils-2.25/bfd/compress.c')
-rw-r--r-- | binutils-2.25/bfd/compress.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/binutils-2.25/bfd/compress.c b/binutils-2.25/bfd/compress.c index 46c2bcb..20eef95 100644 --- a/binutils-2.25/bfd/compress.c +++ b/binutils-2.25/bfd/compress.c @@ -1,6 +1,5 @@ /* Compressed section support (intended for debug sections). - Copyright 2008, 2010, 2011, 2012 - Free Software Foundation, Inc. + Copyright (C) 2008-2014 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -25,6 +24,7 @@ #ifdef HAVE_ZLIB_H #include <zlib.h> #endif +#include "safe-ctype.h" #ifdef HAVE_ZLIB_H static bfd_boolean @@ -304,6 +304,15 @@ bfd_is_section_compressed (bfd *abfd, sec_ptr sec) compressed = (bfd_get_section_contents (abfd, sec, compressed_buffer, 0, 12) && CONST_STRNEQ ((char*) compressed_buffer, "ZLIB")); + /* Check for the pathalogical case of a debug string section that + contains the string ZLIB.... as the first entry. We assume that + no uncompressed .debug_str section would ever be big enough to + have the first byte of its (big-endian) size be non-zero. */ + if (compressed + && strcmp (sec->name, ".debug_str") == 0 + && ISPRINT (compressed_buffer[4])) + compressed = FALSE; + /* Restore compress_status. */ sec->compress_status = saved; return compressed; |