[PATCH 2/2][BZ #12416] Use stack boundaries from /proc/PID/maps to make stack executable

Siddhesh Poyarekar siddhesh@redhat.com
Mon May 7 03:13:00 GMT 2012


On Fri,  4 May 2012 16:10:20 -0700 (PDT), Roland wrote:

> > One reason is that execstack programs set up by the kernel look
> > different. This is probably just a cosmetic inconsistency, but it
> > is an inconsistency nevertheless. If that is acceptable then we
> > could just make pthread_getattr_np return __libc_stack_end rounded
> > up to page size as the end of stack rather than the real vma end.
> 
> I think that's fine.  A program that started with its stack
> executable is in fact different from one that loaded a DSO requiring
> executable stack.
> 

So would you prefer a fix that does this instead, i.e. just use
__libc_stack_end as the end of stack all the time? I personally prefer
my earlier approach where we don't split the stack vma. I believe
some aspects of the kernel stack accounting also relies on the stack
vma, shown by the fact that the split vma does not show up with
[stack]. This probably should be fixed in the kernel, but we're
breaking that when we could do this in an alternate way.

--
Siddhesh



More information about the Libc-alpha mailing list