From f36cd8dcb352f7978e9fceb1b512e08a4e296049 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Wed, 20 Aug 2014 21:07:27 +0200 Subject: Fix guard size computation * pthread/pt-create.c (__pthread_create_internal): On thread creation failure, take guard size into account when deallocating the stack. * sysdeps/mach/pt-thread-terminate.c (__pthread_thread_terminate): Take guard size into account when deallocating the stack. --- pthread/pt-create.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'pthread') diff --git a/pthread/pt-create.c b/pthread/pt-create.c index 00884b5..78dd17e 100644 --- a/pthread/pt-create.c +++ b/pthread/pt-create.c @@ -227,7 +227,10 @@ __pthread_create_internal (struct __pthread **thread, goto failed; failed_thread_alloc: if (pthread->stack) - __pthread_stack_dealloc (pthread->stackaddr, pthread->stacksize); + __pthread_stack_dealloc (pthread->stackaddr, + ((setup->guardsize + __vm_page_size-1) + / __vm_page_size) * __vm_page_size + + pthread->stacksize); failed_stack_alloc: __pthread_dealloc (pthread); failed: -- cgit v1.2.3