summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Wielaard <mark@klomp.org>2022-04-19 11:25:42 +0200
committerMark Wielaard <mark@klomp.org>2022-04-19 11:25:42 +0200
commit21fa92319657ca479ae108967fd41ac523a2f876 (patch)
tree3c93c29f4f955a04e925b7afb3aa889e09d7a3c2
parent5b497d8da4920bf7b63a4aa3752cf580b3ad654c (diff)
downloadelfutils-21fa92319657ca479ae108967fd41ac523a2f876.tar.gz
readelf: Define dyn_mem outside the while loop.
The GCC address sanitizer might complain otherwise: stack-use-after-scope src/readelf.c:1787 in get_dyn_ents Signed-off-by: Mark Wielaard <mark@klomp.org>
-rw-r--r--src/ChangeLog4
-rw-r--r--src/readelf.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index f563e993..6ef81862 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,7 @@
+2022-04-19 Mark Wielaard <mark@klomp.org>
+
+ * readelf.c (get_dyn_ents): Define dyn_mem outside the while loop.
+
2022-03-01 Di Chen <dichen@redhat.com>
* readelf.c (get_dyn_ents): New function.
diff --git a/src/readelf.c b/src/readelf.c
index 4b275ece..4b6aab2b 100644
--- a/src/readelf.c
+++ b/src/readelf.c
@@ -1776,10 +1776,10 @@ static size_t
get_dyn_ents (Elf_Data * dyn_data)
{
GElf_Dyn *dyn;
+ GElf_Dyn dyn_mem;
size_t dyn_idx = 0;
do
{
- GElf_Dyn dyn_mem;
dyn = gelf_getdyn(dyn_data, dyn_idx, &dyn_mem);
if (dyn != NULL)
++dyn_idx;