[binutils-gdb] Fix an illegal memory access by readelf when displaying the contents of a corrupt IA64 binary.
Nick Clifton
nickc@sourceware.org
Thu Feb 27 16:29:00 GMT 2020
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=736990c44277615e47d5dfab523c70488911624d
commit 736990c44277615e47d5dfab523c70488911624d
Author: Nick Clifton <nickc@redhat.com>
Date: Thu Feb 27 16:28:25 2020 +0000
Fix an illegal memory access by readelf when displaying the contents of a corrupt IA64 binary.
PR 25526
* readelf.c (process_ia64_vms_dynamic_relocs): Check to see if
get_data is unable to load the string table.
Diff:
---
binutils/ChangeLog | 6 ++++++
binutils/readelf.c | 3 +++
2 files changed, 9 insertions(+)
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index b15238a..24d17c2 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,9 @@
+2020-02-27 Nick Clifton <nickc@redhat.com>
+
+ PR 25526
+ * readelf.c (process_ia64_vms_dynamic_relocs): Check to see if
+ get_data is unable to load the string table.
+
2020-02-26 Alan Modra <amodra@gmail.com>
* elfedit.c: Indent labels correctly.
diff --git a/binutils/readelf.c b/binutils/readelf.c
index ee34bd6..bf84f87 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -7104,6 +7104,7 @@ dump_ia64_vms_dynamic_fixups (Filedata * filedata,
(unsigned long) fixup->needed);
lib_name = "???";
}
+
printf (_("\nImage fixups for needed library #%d: %s - ident: %lx\n"),
(int) fixup->fixup_needed, lib_name, (long) fixup->needed_ident);
printf
@@ -7203,6 +7204,8 @@ process_ia64_vms_dynamic_relocs (Filedata * filedata)
if (strtab == NULL)
strtab = get_data (NULL, filedata, dynamic_addr + strtab_off,
1, strtab_sz, _("dynamic string section"));
+ if (strtab == NULL)
+ strtab_sz = 0;
break;
case DT_IA_64_VMS_NEEDED_IDENT:
More information about the Binutils-cvs
mailing list