- Testing shdr makes no sense, that pointer was dereferenced several times throughout the section. destshdr on the other hand is not tested at all.
Signed-off-by: Petr Machata pmachata@redhat.com --- src/ChangeLog | 4 ++++ src/readelf.c | 2 +- 2 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/src/ChangeLog b/src/ChangeLog index aa98608..a252cdc 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2014-09-14 Petr Machata pmachata@redhat.com + + * readelf.c (handle_relocs_rela): Typo fix, test DESTSHDR properly. + 2014-09-12 Petr Machata pmachata@redhat.com
* readelf.c (encoded_ptr_size): In the switch statement, change diff --git a/src/readelf.c b/src/readelf.c index 7b43a65..4d3bb36 100644 --- a/src/readelf.c +++ b/src/readelf.c @@ -2090,7 +2090,7 @@ handle_relocs_rela (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn, GElf_Shdr *shdr) ? xndx : sym->st_shndx), &destshdr_mem);
- if (unlikely (shdr == NULL)) + if (unlikely (destshdr == NULL)) printf (" %#0*" PRIx64 " %-15s <%s %ld>\n", class == ELFCLASS32 ? 10 : 18, rel->r_offset, ebl_reloc_type_check (ebl, GELF_R_TYPE (rel->r_info))
On Sun, 2014-09-14 at 01:03 +0200, Petr Machata wrote:
- Testing shdr makes no sense, that pointer was dereferenced several times throughout the section. destshdr on the other hand is not tested at all.
+2014-09-14 Petr Machata pmachata@redhat.com
- readelf.c (handle_relocs_rela): Typo fix, test DESTSHDR properly.
Yes, seems obviously correct to me. The else branch would crash and burn when trying to dereference destshdr->sh_name otherwise.
Thanks,
Mark
elfutils-devel@lists.fedorahosted.org