From 663f67df1e8a7ac0ab8c8c577817067ca32ea4be Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Mon, 30 Sep 2019 14:04:08 +0930 Subject: [PATCH] PR25046, readelf "Reading xxx bytes extends past end of file for dynamic section" PR 25046 * readelf.c (process_program_headers): Clear dynamic_addr and dynamic_size earlier. --- binutils/ChangeLog | 6 ++++++ binutils/readelf.c | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/binutils/ChangeLog b/binutils/ChangeLog index a136e5b716d..dcc876c67b7 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,9 @@ +2019-09-30 Alan Modra + + PR 25046 + * readelf.c (process_program_headers): Clear dynamic_addr and + dynamic_size earlier. + 2019-09-24 Alan Modra PR 25031 diff --git a/binutils/readelf.c b/binutils/readelf.c index cc168163b21..0962877ad8f 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -5101,6 +5101,9 @@ process_program_headers (Filedata * filedata) unsigned int i; Elf_Internal_Phdr * previous_load = NULL; + dynamic_addr = 0; + dynamic_size = 0; + if (filedata->file_header.e_phnum == 0) { /* PR binutils/12467. */ @@ -5151,9 +5154,6 @@ process_program_headers (Filedata * filedata) } } - dynamic_addr = 0; - dynamic_size = 0; - for (i = 0, segment = filedata->program_headers; i < filedata->file_header.e_phnum; i++, segment++) -- 2.30.2