Alan Modra <amo...@gmail.com> writes: > On Thu, May 12, 2016 at 03:41:09PM +0200, Florian Weimer wrote: >> We noticed that on ppc64, the sbrk system call in the 32-bit subsystem >> returns executable memory. I assume it is related to this, in >> arch/powerpc/include/asm/page.h: >> >> /* >> * Unfortunately the PLT is in the BSS in the PPC32 ELF ABI, >> * and needs to be executable. This means the whole heap ends >> * up being executable. >> */ >> #define VM_DATA_DEFAULT_FLAGS32 (VM_READ | VM_WRITE | VM_EXEC | \ >> VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC) >> >> >> What is the rationale for this? This comment must be *really* old, > > I think the comment is just plain wrong. ppc32 needs an executable > stack because it builds trampolines on the stack to support calling > nested functions. I presume that's why the heap is executable.
The stack and the heap are separate mappings. > (If > I'm wrong about heap+stack needing the same protection then I can't > think of any reason to require an executable heap.) The heap and the BSS initially share the same page. Andreas. -- Andreas Schwab, sch...@linux-m68k.org GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev