[PATCH] attr.c in _STACK_GROWS_UP case.

Jakub Jelinek jakub@redhat.com
Mon Dec 29 00:11:00 GMT 2003


On Sun, Dec 28, 2003 at 06:55:57PM -0500, Carlos O'Donell wrote:
> On Sun, Dec 28, 2003 at 03:32:52PM -0800, Roland McGrath wrote:
> > Don't you still need to do something to cap the size when the rlimit is
> > very high (e.g. ulimit -s unlimited)?
> 
> Unknown. I just assume that you get to keep allocating stack until you
> run off the end of the mapping and fault.
> 
> Shouldn't everyone be capping this to the other end of the vma?
> 
> e.g. 
>       attr->__stacksize = (size_t)to - (size_t)from;

No, because the VMA is growing.
But IMHO it makes sense to cap it by the end of the previous vma
(resp. for S_G_U beginning of next vma).
For S_G_D this means remembering to from previous VMA in last_to
(initialized to 0 at the beginning) and:
attr->__stacksize = rl.rlim_cur;
attr->__stackaddr = (void *) to;
if ((size_t) attr->__stacksize > (size_t) attr->__stackaddr - last_to)
  attr->__stacksize = (size_t) attr->__stackaddr - last_to;

	Jakub



More information about the Libc-alpha mailing list