diff options
Diffstat (limited to 'src')
-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) { |