mirror of
https://sourceware.org/git/glibc.git
synced 2025-08-08 17:42:12 +03:00
static-pie: Skip the empty PT_LOAD segment at offset 0 [BZ #32763]
As shown in https://sourceware.org/bugzilla/show_bug.cgi?id=25237 linker may generate an empty PT_LOAD segments at offset 0: Elf file type is EXEC (Executable file) Entry point 0x4000e8 There are 3 program headers, starting at offset 64 Program Headers: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flags Align LOAD 0x0000000000000000 0x0000000000400000 0x0000000000400000 0x00000000000000f0 0x00000000000000f0 R E 0x1000 LOAD 0x0000000000000000 0x0000000000410000 0x0000000000410000 0x0000000000000000 0x0000000000b5dce8 RW 0x10000 GNU_STACK 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000 RW 0x10 Section to Segment mapping: Segment Sections... 00 .text 01 .bss 02 Skip the empty PT_LOAD segment at offset 0 to support such binaries. This fixes BZ #32763. Signed-off-by: H.J. Lu <hjl.tools@gmail.com> Reviewed-by: Sam James <sam@gentoo.org>
This commit is contained in:
@@ -51,7 +51,8 @@ _dl_relocate_static_pie (void)
|
||||
switch (ph->p_type)
|
||||
{
|
||||
case PT_LOAD:
|
||||
if (ph->p_offset == 0)
|
||||
/* Skip the empty PT_LOAD segment at offset 0. */
|
||||
if (ph->p_filesz != 0 && ph->p_offset == 0)
|
||||
file_p_vaddr = ph->p_vaddr;
|
||||
break;
|
||||
case PT_DYNAMIC:
|
||||
|
Reference in New Issue
Block a user