diff options
author | Mark Wielaard <mark@klomp.org> | 2022-11-03 13:52:32 +0100 |
---|---|---|
committer | Mark Wielaard <mark@klomp.org> | 2022-11-03 13:52:32 +0100 |
commit | 52a6a3110e019d696284fdd822c2a2f0987dded2 (patch) | |
tree | 09b0f6fa9ba857eb85e261f1612ab7a1c257bb9d | |
parent | b0a0235771906e3bcd6174c4e3c020b5522b0be5 (diff) | |
download | elfutils-52a6a3110e019d696284fdd822c2a2f0987dded2.tar.gz |
readelf: Check gelf_getdyn doesn't return NULL
Signed-off-by: Mark Wielaard <mark@klomp.org>
-rw-r--r-- | src/ChangeLog | 5 | ||||
-rw-r--r-- | src/readelf.c | 2 |
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) { |