From 08698b7b46c9c932530dcbcd7e851d27a7d2c503 Mon Sep 17 00:00:00 2001 From: Gary Benson Date: Tue, 29 Nov 2016 11:14:02 +0000 Subject: [PATCH] Always pass a valid section header offset to elf_parse_notes _bfd_elf_make_section_from_shdr calls elf_parse_notes with an offset of -1. This argument is used to calculate Elf_Internal_Note.descpos, which ends up set to a positive but meaningless value. This commit updates _bfd_elf_make_section_from_shdr to pass the correct offset to elf_parse_notes, making Elf_Internal_Note.descpos correct in all cases. bfd/ChangeLog: * elf.c (_bfd_elf_make_section_from_shdr): Pass offset to elf_parse_notes. --- bfd/ChangeLog | 5 +++++ bfd/elf.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index cef1c4b6ab..d061e66a26 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2016-12-02 Gary Benson + + * elf.c (_bfd_elf_make_section_from_shdr): Pass offset to + elf_parse_notes. + 2016-12-02 Josh Conner * configure.tgt: Add support for fuchsia (OS). diff --git a/bfd/elf.c b/bfd/elf.c index 3d1a28aa7e..98be1db6d7 100644 --- a/bfd/elf.c +++ b/bfd/elf.c @@ -1062,7 +1062,7 @@ _bfd_elf_make_section_from_shdr (bfd *abfd, if (!bfd_malloc_and_get_section (abfd, newsect, &contents)) return FALSE; - elf_parse_notes (abfd, (char *) contents, hdr->sh_size, -1); + elf_parse_notes (abfd, (char *) contents, hdr->sh_size, hdr->sh_offset); free (contents); }