diff options
author | Nick Clifton <nickc@redhat.com> | 2020-02-27 16:28:25 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2020-02-27 16:28:25 +0000 |
commit | 736990c44277615e47d5dfab523c70488911624d (patch) | |
tree | 98bf1f2044dcdfba764eb5222575e1b4f2e9106d /binutils/readelf.c | |
parent | 3608f86c427a907335eb96b8dd6d6d2071d6f4a1 (diff) | |
download | gdb-736990c44277615e47d5dfab523c70488911624d.zip gdb-736990c44277615e47d5dfab523c70488911624d.tar.gz gdb-736990c44277615e47d5dfab523c70488911624d.tar.bz2 |
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.
Diffstat (limited to 'binutils/readelf.c')
-rw-r--r-- | binutils/readelf.c | 3 |
1 files changed, 3 insertions, 0 deletions
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: |