From: Nick Clifton Date: Fri, 27 Feb 2015 15:38:32 +0000 (+0000) Subject: Fixes a problem recognizing libraries created by Visual Studio. X-Git-Tag: users/hjl/linux/release/2.25.51.0.2~2^2~36^2~42 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cdb602b17548eeebb5e700c507d734ea5f887a49;p=thirdparty%2Fbinutils-gdb.git Fixes a problem recognizing libraries created by Visual Studio. PR binutils/17910 * coffgen.c (_bfd_coff_internal_syment_name): Only check for string length overflow when the string table length is actually set. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index dea16aed123..1b223f989e8 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,10 @@ +2015-02-27 Nick Clifton + + PR binutils/17910 + * coffgen.c (_bfd_coff_internal_syment_name): Only check for + string length overflow when the string table length is actually + set. + 2015-02-27 Marcus Shawcroft * bfd/bfd-in2.h: Regenerate. diff --git a/bfd/coffgen.c b/bfd/coffgen.c index aa015597b78..83673d4846c 100644 --- a/bfd/coffgen.c +++ b/bfd/coffgen.c @@ -468,7 +468,10 @@ _bfd_coff_internal_syment_name (bfd *abfd, if (strings == NULL) return NULL; } - if (sym->_n._n_n._n_offset >= obj_coff_strings_len (abfd)) + /* PR 17910: Only check for string overflow if the length has been set. + Some DLLs, eg those produced by Visual Studio, may not set the length field. */ + if (obj_coff_strings_len (abfd) > 0 + && sym->_n._n_n._n_offset >= obj_coff_strings_len (abfd)) return NULL; return strings + sym->_n._n_n._n_offset; }