[Devel] [PATCH 5/5] user-cr: use genstack API in nsexeccwp
Nathan Lynch
ntl at pobox.com
Fri Dec 4 21:02:31 PST 2009
Signed-off-by: Nathan Lynch <ntl at pobox.com>
---
Makefile | 2 +-
nsexeccwp.c | 11 ++++++-----
2 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/Makefile b/Makefile
index b1485cb..35188f9 100644
--- a/Makefile
+++ b/Makefile
@@ -39,7 +39,7 @@ restart: CFLAGS += -D__REENTRANT -pthread
ifneq ($(SUBARCH),)
restart: clone_$(SUBARCH).o genstack.o
restart: CFLAGS += -DARCH_HAS_ECLONE
-nsexeccwp: clone_$(SUBARCH).o
+nsexeccwp: clone_$(SUBARCH).o genstack.o
nsexeccwp: CFLAGS += -DARCH_HAS_ECLONE
endif
diff --git a/nsexeccwp.c b/nsexeccwp.c
index d3853f0..859b6c3 100644
--- a/nsexeccwp.c
+++ b/nsexeccwp.c
@@ -18,6 +18,7 @@
#include "clone.h"
#include "eclone.h"
+#include "genstack.h"
extern pid_t getpgid(pid_t pid);
extern pid_t getsid(pid_t pid);
@@ -270,17 +271,17 @@ int main(int argc, char *argv[])
if (use_clone) {
struct clone_args clone_args;
- int stacksize = 4*getpagesize();
- void *stack = malloc(stacksize);
+ size_t stacksize = 4 * sysconf(_SC_PAGESIZE);
+ genstack stack = genstack_alloc(stacksize);
if (!stack) {
- perror("malloc");
+ perror("genstack_alloc");
return -1;
}
memset(&clone_args, 0, sizeof(clone_args));
- clone_args.child_stack = (unsigned long)stack;
- clone_args.child_stack_size = stacksize;
+ clone_args.child_stack = (unsigned long)genstack_base(stack);
+ clone_args.child_stack_size = genstack_size(stack);
clone_args.nr_pids = nr_pids;
printf("about to clone with %lx\n", flags);
--
1.6.0.6
_______________________________________________
Containers mailing list
Containers at lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
More information about the Devel
mailing list