From: Nick Clifton Date: Thu, 27 Feb 2020 16:28:25 +0000 (+0000) Subject: Fix an illegal memory access by readelf when displaying the contents of a corrupt... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=736990c44277615e47d5dfab523c70488911624d;p=binutils-gdb.git 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 --git a/binutils/ChangeLog b/binutils/ChangeLog index b15238a0bf3..24d17c25fb5 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,9 @@ +2020-02-27 Nick Clifton + + 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 * elfedit.c: Indent labels correctly. diff --git a/binutils/readelf.c b/binutils/readelf.c index ee34bd6f1bc..bf84f877fc2 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: