From f507bebf459de9b145bd8ccfcfa2f5f6690adac4 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 18 May 2016 15:21:16 +0100 Subject: [PATCH] Prevent a run time segmentation fault when stripping a corrupt binary. PR 20096 * objcopy.c (copy_relocations_in_section): Also check for the symbol pointed to by sym_ptr_ptr being NULL. --- binutils/ChangeLog | 6 ++++++ binutils/objcopy.c | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/binutils/ChangeLog b/binutils/ChangeLog index c4bb34eb6b6..64b409e26dd 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,9 @@ +2016-05-18 Nick Clifton + + 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 * testsuite/binutils-all/mips/mixed-mips16-micromips.d: New test. diff --git a/binutils/objcopy.c b/binutils/objcopy.c index 198ba3a2071..0b218995a96 100644 --- a/binutils/objcopy.c +++ b/binutils/objcopy.c @@ -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]; -- 2.30.2