aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2016-06-02 16:20:27 +0100
committerNick Clifton <nickc@redhat.com>2016-06-02 16:20:27 +0100
commitbcc3a8bca12aa077e6d40880f2d41f05864d4798 (patch)
tree32b7aab5af3bf87b00fb47ecde90e20af3b45683
parent193bd37899bc7e301b195929bc7e335bea03d4e4 (diff)
downloadgdb-bcc3a8bca12aa077e6d40880f2d41f05864d4798.zip
gdb-bcc3a8bca12aa077e6d40880f2d41f05864d4798.tar.gz
gdb-bcc3a8bca12aa077e6d40880f2d41f05864d4798.tar.bz2
Fix a seg-fault when stripping a corrupt binary.
PR 20089 * objcopy.c (group_signature): Fail if the input symbol table has not been loaded.
-rw-r--r--binutils/ChangeLog4
-rw-r--r--binutils/objcopy.c4
2 files changed, 8 insertions, 0 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 9dfaf2b..a91b99b 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,5 +1,9 @@
2016-06-02 Nick Clifton <nickc@redhat.com>
+ PR 20089
+ * objcopy.c (group_signature): Fail if the input symbol table has
+ not been loaded.
+
* dwarf.c (display_debug_frames): Do not display any
interpretation if the block consists solely of DW__CFA_NOPs.
diff --git a/binutils/objcopy.c b/binutils/objcopy.c
index 9426761..98332cd 100644
--- a/binutils/objcopy.c
+++ b/binutils/objcopy.c
@@ -1125,6 +1125,10 @@ group_signature (asection *group)
bfd *abfd = group->owner;
Elf_Internal_Shdr *ghdr;
+ /* PR 20089: An earlier error may have prevented us from loading the symbol table. */
+ if (isympp == NULL)
+ return NULL;
+
if (bfd_get_flavour (abfd) != bfd_target_elf_flavour)
return NULL;