From: Mark Wielaard Date: Mon, 26 May 2014 20:54:38 +0000 (+0200) Subject: readelf: Don't print 'for section' when rela section sh_info is zero. X-Git-Tag: elfutils-0.160~22 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=eb4811dee133864ebbab1a062ac14af1f3ffdc62;p=thirdparty%2Felfutils.git readelf: Don't print 'for section' when rela section sh_info is zero. This matches how handle_relocs_rel already printed the header. Signed-off-by: Mark Wielaard --- diff --git a/src/ChangeLog b/src/ChangeLog index 4062fc7f2..5535cff72 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2014-05-26 Mark Wielaard + + * readelf.c (handle_relocs_rela): Print header like handle_relocs_rel + does, when sh_info == 0. + 2014-05-26 Mark Wielaard * unstrip.c (find_alloc_sections_prelink): Allow non-split .bss diff --git a/src/readelf.c b/src/readelf.c index 45b19105e..ea14a09b9 100644 --- a/src/readelf.c +++ b/src/readelf.c @@ -1971,7 +1971,8 @@ handle_relocs_rela (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn, GElf_Shdr *shdr) error (EXIT_FAILURE, 0, gettext ("cannot get section header string table index")); - printf (ngettext ("\ + if (shdr->sh_info != 0) + printf (ngettext ("\ \nRelocation section [%2zu] '%s' for section [%2u] '%s' at offset %#0" PRIx64 " contains %d entry:\n", "\ \nRelocation section [%2zu] '%s' for section [%2u] '%s' at offset %#0" PRIx64 " contains %d entries:\n", @@ -1982,6 +1983,19 @@ handle_relocs_rela (Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn, GElf_Shdr *shdr) elf_strptr (ebl->elf, shstrndx, destshdr->sh_name), shdr->sh_offset, nentries); + else + /* The .rela.dyn section does not refer to a specific section but + instead of section index zero. Do not try to print a section + name. */ + printf (ngettext ("\ +\nRelocation section [%2u] '%s' at offset %#0" PRIx64 " contains %d entry:\n", + "\ +\nRelocation section [%2u] '%s' at offset %#0" PRIx64 " contains %d entries:\n", + nentries), + (unsigned int) elf_ndxscn (scn), + elf_strptr (ebl->elf, shstrndx, shdr->sh_name), + shdr->sh_offset, + nentries); fputs_unlocked (class == ELFCLASS32 ? gettext ("\ Offset Type Value Addend Name\n")