aboutsummaryrefslogtreecommitdiff
path: root/binutils
diff options
context:
space:
mode:
authorL. Simon <l.simon@samsung.com>2018-08-21 15:37:06 +0100
committerNick Clifton <nickc@redhat.com>2018-08-21 15:37:06 +0100
commit66b09c7ea97ffa4e0a175393fa7a8f240b00fbde (patch)
tree99d7fc2806ad3c2bff44379cca6f2af145f2c29e /binutils
parent9dcbfff1e02778bac6fb723640724c38001a8f0a (diff)
downloadgdb-66b09c7ea97ffa4e0a175393fa7a8f240b00fbde.zip
gdb-66b09c7ea97ffa4e0a175393fa7a8f240b00fbde.tar.gz
gdb-66b09c7ea97ffa4e0a175393fa7a8f240b00fbde.tar.bz2
Fix a seg-fault in readelf when parsing corrupt HPPA unwind tables.
PR 23531 * readelf.c (hppa_process_unwind): Only dump the unwind table if the data was successfully read in.
Diffstat (limited to 'binutils')
-rw-r--r--binutils/ChangeLog6
-rw-r--r--binutils/readelf.c4
2 files changed, 8 insertions, 2 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 265bd68..ab7183b 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,9 @@
+2018-08-21 L. Simon <l.simon@samsung.com>
+
+ PR 23531
+ * readelf.c (hppa_process_unwind): Only dump the unwind table if
+ the data was successfully read in.
+
2018-08-18 Alan Modra <amodra@gmail.com>
* testsuite/lib/binutils-common.exp (is_elf64): Use directory of
diff --git a/binutils/readelf.c b/binutils/readelf.c
index 8a61db6..52aebd3 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -8130,8 +8130,8 @@ hppa_process_unwind (Filedata * filedata)
if (! slurp_hppa_unwind_table (filedata, &aux, sec))
res = FALSE;
-
- if (aux.table_len > 0)
+
+ if (res && aux.table_len > 0)
{
if (! dump_hppa_unwind (filedata, &aux))
res = FALSE;