Thread (27 messages) 27 messages, 7 authors, 2010-02-11

Re: [PATCH] Restrict stack space reservation to rlimit

From: KOSAKI Motohiro <hidden>
Date: 2010-02-08 07:11:47
Also in: linux-fsdevel, lkml

On Mon, Feb 8, 2010 at 2:05 PM, KOSAKI Motohiro
[off-list ref] wrote:
quoted
quoted
--- linux-2.6-ozlabs.orig/fs/exec.c
+++ linux-2.6-ozlabs/fs/exec.c
@@ -627,10 +627,13 @@ int setup_arg_pages(struct linux_binprm
                      goto out_unlock;
      }

+     stack_base = min(EXTRA_STACK_VM_PAGES * PAGE_SIZE,
+                      current->signal->rlim[RLIMIT_STACK].rlim_cur -
+                        PAGE_SIZE);
This line is a bit unclear why "- PAGE_SIZE" is necessary.
personally, I like following likes explicit comments.

       stack_expand = EXTRA_STACK_VM_PAGES * PAGE_SIZE;
       stack_lim = ACCESS_ONCE(rlim[RLIMIT_STACK].rlim_cur);

       /* Initial stack must not cause stack overflow. */
       if (stack_expand + PAGE_SIZE > stack_lim)
               stack_expand = stack_lim - PAGE_SIZE;

note: accessing rlim_cur require ACCESS_ONCE.


Thought?
It's better to use the helper function: rlimit().
AFAIK, stable tree doesn't have rlimit(). but yes, making two patch
(for mainline and for stable) is good opinion.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help