From bba1ff4cf64a095d9b6c193e8a5d19da3f6e1a16 Mon Sep 17 00:00:00 2001 From: Miklos Szeredi Date: Thu, 18 Feb 2010 11:05:13 +0000 Subject: * Fix stack alignment for clone() --- util/fusermount.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'util') diff --git a/util/fusermount.c b/util/fusermount.c index f0d8732..6123c66 100644 --- a/util/fusermount.c +++ b/util/fusermount.c @@ -262,9 +262,8 @@ static int check_is_mount_child(void *p) static pid_t clone_newns(void *a) { - long long buf[16384]; - size_t stacksize = sizeof(buf) / 2; - char *stack = ((char *) buf) + stacksize; + char buf[131072]; + char *stack = buf + (sizeof(buf) / 2 - ((size_t) buf & 15)); #ifdef __ia64__ extern int __clone2(int (*fn)(void *), @@ -272,8 +271,8 @@ static pid_t clone_newns(void *a) int flags, void *arg, pid_t *ptid, void *tls, pid_t *ctid); - return __clone2(check_is_mount_child, stack, stacksize, CLONE_NEWNS, a, - NULL, NULL, NULL); + return __clone2(check_is_mount_child, stack, sizeof(buf) / 2, + CLONE_NEWNS, a, NULL, NULL, NULL); #else return clone(check_is_mount_child, stack, CLONE_NEWNS, a); #endif -- cgit v1.2.3