summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Wielaard <mark@klomp.org>2022-11-03 13:52:32 +0100
committerFrank Ch. Eigler <fche@redhat.com>2023-04-07 10:53:47 -0400
commitdf1881737bc89b7f4b06f0b038cb6fcfd76c7cae (patch)
tree5cb4934724fba5eaa2749e2a034a1f30297c631c
parent96635eb07ac35c970ad606117d01ed19b233f0b2 (diff)
downloadelfutils-df1881737bc89b7f4b06f0b038cb6fcfd76c7cae.tar.gz
readelf: Check gelf_getdyn doesn't return NULL
Signed-off-by: Mark Wielaard <mark@klomp.org>
-rw-r--r--src/ChangeLog5
-rw-r--r--src/readelf.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 0c5ab37e..66428b70 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,10 @@
2022-11-03 Mark Wielaard <mark@klomp.org>
+ * readelf.c (get_dynscn_addrs): Check gelf_getdyn doesn't
+ return NULL.
+
+2022-11-03 Mark Wielaard <mark@klomp.org>
+
* readelf.c (handle_dynamic): Check phdr != NULL when
use_dynamic_segment, otherwise check shdr != NULL.
diff --git a/src/readelf.c b/src/readelf.c
index e721a209..3dafb041 100644
--- a/src/readelf.c
+++ b/src/readelf.c
@@ -4910,7 +4910,7 @@ get_dynscn_addrs(Elf *elf, GElf_Phdr *phdr, GElf_Addr addrs[i_max])
GElf_Dyn dyn_mem;
GElf_Dyn *dyn = gelf_getdyn(data, dyn_idx, &dyn_mem);
/* DT_NULL Marks end of dynamic section. */
- if (dyn->d_tag == DT_NULL)
+ if (dyn == NULL || dyn->d_tag == DT_NULL)
break;
switch (dyn->d_tag) {