diff options
Diffstat (limited to 'linuxthreads')
-rw-r--r-- | linuxthreads/ChangeLog | 5 | ||||
-rw-r--r-- | linuxthreads/manager.c | 4 |
2 files changed, 7 insertions, 2 deletions
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog index 1e39b00..ab97529 100644 --- a/linuxthreads/ChangeLog +++ b/linuxthreads/ChangeLog @@ -1,3 +1,8 @@ +1999-07-09 Ulrich Drepper <drepper@cygnus.com> + + * manager.c (pthread_handle_create): Free mmap region after stack + if clone failed. Patch by Kaz Kylheku <kaz@ashi.FootPrints.net>. + 1999-05-23 Andreas Jaeger <aj@arthur.rhein-neckar.de> * man/pthread_cond_init.man: Correct example. diff --git a/linuxthreads/manager.c b/linuxthreads/manager.c index f390aa1..f783bb1 100644 --- a/linuxthreads/manager.c +++ b/linuxthreads/manager.c @@ -379,10 +379,10 @@ static int pthread_handle_create(pthread_t *thread, const pthread_attr_t *attr, /* Free the stack if we allocated it */ if (attr == NULL || !attr->__stackaddr_set) { - munmap((caddr_t)((char *)(new_thread+1) - INITIAL_STACK_SIZE), - INITIAL_STACK_SIZE); if (new_thread->p_guardsize != 0) munmap(new_thread->p_guardaddr, new_thread->p_guardsize); + munmap((caddr_t)((char *)(new_thread+1) - INITIAL_STACK_SIZE), + INITIAL_STACK_SIZE); } __pthread_handles[sseg].h_descr = NULL; __pthread_handles[sseg].h_bottom = NULL; |