Fix illegal memory access bug in nm when run on a corrupt binary.
authorNick Clifton <nickc@redhat.com>
Mon, 13 Feb 2017 17:23:10 +0000 (17:23 +0000)
committerNick Clifton <nickc@redhat.com>
Mon, 13 Feb 2017 17:23:10 +0000 (17:23 +0000)
PR binutils/21150
* nm.c (file_symbol): Add test of string length before testing
string characters.

binutils/ChangeLog
binutils/nm.c

index 294e66c..5baf48e 100644 (file)
@@ -1,5 +1,11 @@
 2017-02-13  Nick Clifton  <nickc@redhat.com>
 
+       PR binutils/21150
+       * nm.c (file_symbol): Add test of string length before testing
+       string characters.
+
+2017-02-13  Nick Clifton  <nickc@redhat.com>
+
        PR binutils/21135
        * readelf.c (dump_section_as_bytes): Handle the case where
        uncompress_section_contents returns false.
index fcbab41..7ddcc8a 100644 (file)
@@ -685,7 +685,8 @@ size_forward1 (const void *P_x, const void *P_y)
 
 #define file_symbol(s, sn, snl)                        \
   (((s)->flags & BSF_FILE) != 0                        \
-   || ((sn)[(snl) - 2] == '.'                  \
+   || ((snl) > 2                               \
+       && (sn)[(snl) - 2] == '.'               \
        && ((sn)[(snl) - 1] == 'o'              \
           || (sn)[(snl) - 1] == 'a')))