Prevent a run time segmentation fault when stripping a corrupt binary.
authorNick Clifton <nickc@redhat.com>
Wed, 18 May 2016 14:21:16 +0000 (15:21 +0100)
committerNick Clifton <nickc@redhat.com>
Wed, 18 May 2016 14:21:16 +0000 (15:21 +0100)
PR 20096
* objcopy.c (copy_relocations_in_section): Also check for the
symbol pointed to by sym_ptr_ptr being NULL.

binutils/ChangeLog
binutils/objcopy.c

index c4bb34e..64b409e 100644 (file)
@@ -1,3 +1,9 @@
+2016-05-18  Nick Clifton  <nickc@redhat.com>
+
+       PR 20096
+       * objcopy.c (copy_relocations_in_section): Also check for the
+       symbol pointed to by sym_ptr_ptr being NULL.
+
 2016-05-18  Maciej W. Rozycki  <macro@imgtec.com>
 
        * testsuite/binutils-all/mips/mixed-mips16-micromips.d: New test.
index 198ba3a..0b21899 100644 (file)
@@ -3250,7 +3250,9 @@ copy_relocations_in_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
          for (i = 0; i < relcount; i++)
            {
              /* PR 17512: file: 9e907e0c.  */
-             if (relpp[i]->sym_ptr_ptr)
+             if (relpp[i]->sym_ptr_ptr
+                 /* PR 20096 */
+                 && * relpp[i]->sym_ptr_ptr)
                if (is_specified_symbol (bfd_asymbol_name (*relpp[i]->sym_ptr_ptr),
                                         keep_specific_htab))
                  temp_relpp [temp_relcount++] = relpp [i];