HomePhabricator

Merging r369828: --------------------------------------------------------------…

Authored by hansw on Sep 6 2019, 4:18 AM.

Description

Merging r369828: ------------------------------------------------------------------------ r369828 | maskray | 2019-08-24 02:41:15 +0200 (Sat, 24 Aug 2019) | 18 lines

[ELF] Align the first section of a PT_LOAD even if its type is SHT_NOBITS

Reported at https://reviews.llvm.org/D64930#1642223

If the only section of a PT_LOAD is a SHT_NOBITS section (e.g. .bss), we
may not align its sh_offset. p_offset of the PT_LOAD will be set to
sh_offset, and we will get p_offset!=p_vaddr (mod p_align). If such
executable is mapped by the Linux kernel, it will segfault.

After D64906, this may happen the non-linker script case.

The linker script case has had this issue for a long time.
This was fixed by rL321657 (but the test linkerscript/nobits-offset.s
failed to test a SHT_NOBITS section), but broken by rL345154.

Reviewed By: peter.smith

Differential Revision: https://reviews.llvm.org/D66658

llvm-svn: 371196

Details

Committed
hanswSep 6 2019, 4:18 AM
Reviewer
peter.smith
Differential Revision
D66658: [ELF] Align the first section of a PT_LOAD even if its type is SHT_NOBITS
Parents
rG5fc03679c9d5: Merging r371088 and r371095:
Branches
Unknown
Tags
Unknown