about summary refs log tree commit diff
path: root/linuxthreads
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1999-07-09 10:13:23 +0000
committerUlrich Drepper <drepper@redhat.com>1999-07-09 10:13:23 +0000
commit019e7a645aa33eee4cb5098dc475a303d0e0512a (patch)
treeee004ff33b7f59e6799447786398ea64fc8e19fd /linuxthreads
parentbee1e289fafbf1d429f401eb4d7ea4be27282f17 (diff)
downloadglibc-019e7a645aa33eee4cb5098dc475a303d0e0512a.tar.gz
glibc-019e7a645aa33eee4cb5098dc475a303d0e0512a.tar.xz
glibc-019e7a645aa33eee4cb5098dc475a303d0e0512a.zip
Update.
1999-07-09  Andreas Schwab  <schwab@suse.de>

	* elf/Makefile (headers): Remove bits/dlfcn.h and dlfcn.h.

	* dlfcn/Makefile (headers): Add bits/dlfcn.h.
Diffstat (limited to 'linuxthreads')
-rw-r--r--linuxthreads/ChangeLog5
-rw-r--r--linuxthreads/manager.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index 1e39b001b8..ab97529a83 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 f390aa13e8..f783bb1a13 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;