This is the mail archive of the binutils-cvs@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] ELF: Don't include zero size sections at start of PT_NOTE segment


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=95475e5d6b7529309ca804fdc2c2e04d654c3978

commit 95475e5d6b7529309ca804fdc2c2e04d654c3978
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Sep 21 04:07:50 2018 -0700

    ELF: Don't include zero size sections at start of PT_NOTE segment
    
    We shouldn't include zero size sections at start of PT_NOTE segment,
    similar to PT_DYNAMIC segment.
    
    	PR binutils/23694
    	* include/elf/internal.h (ELF_SECTION_IN_SEGMENT_1): Don't
    	include zero size sections at start of PT_NOTE segment.

Diff:
---
 include/ChangeLog      |  6 ++++++
 include/elf/internal.h | 10 ++++++----
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/include/ChangeLog b/include/ChangeLog
index 34dcb8c..f46251e 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,9 @@
+2018-09-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR binutils/23694
+	* include/elf/internal.h (ELF_SECTION_IN_SEGMENT_1): Don't
+	include zero size sections at start of PT_NOTE segment.
+
 2018-09-20  Nelson Chu <nelson.chu1990@gmail.com>
 
 	* elf/nds32.h: Remove the unused target features.
diff --git a/include/elf/internal.h b/include/elf/internal.h
index 05f9fab..0d96f0c 100644
--- a/include/elf/internal.h
+++ b/include/elf/internal.h
@@ -311,8 +311,8 @@ struct elf_segment_map
    VMAs are checked for alloc sections.  If STRICT, then a zero size
    section won't match at the end of a segment, unless the segment
    is also zero size.  Regardless of STRICT and CHECK_VMA, zero size
-   sections won't match at the start or end of PT_DYNAMIC, unless
-   PT_DYNAMIC is itself zero sized.  */
+   sections won't match at the start or end of PT_DYNAMIC nor PT_NOTE,
+   unless PT_DYNAMIC and PT_NOTE are themselves zero sized.  */
 #define ELF_SECTION_IN_SEGMENT_1(sec_hdr, segment, check_vma, strict)	\
   ((/* Only PT_LOAD, PT_GNU_RELRO and PT_TLS segments can contain	\
        SHF_TLS sections.  */						\
@@ -352,8 +352,10 @@ struct elf_segment_map
 	   && (((sec_hdr)->sh_addr - (segment)->p_vaddr			\
 		+ ELF_SECTION_SIZE(sec_hdr, segment))			\
 	       <= (segment)->p_memsz)))					\
-   /* No zero size sections at start or end of PT_DYNAMIC.  */		\
-   && ((segment)->p_type != PT_DYNAMIC					\
+   /* No zero size sections at start or end of PT_DYNAMIC nor		\
+      PT_NOTE.  */							\
+   && (((segment)->p_type != PT_DYNAMIC					\
+	&& (segment)->p_type != PT_NOTE)				\
        || (sec_hdr)->sh_size != 0					\
        || (segment)->p_memsz == 0					\
        || (((sec_hdr)->sh_type == SHT_NOBITS				\


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]