Update.
authorUlrich Drepper <drepper@redhat.com>
Sat, 8 Mar 2003 09:41:16 +0000 (09:41 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sat, 8 Mar 2003 09:41:16 +0000 (09:41 +0000)
2003-03-08  Ulrich Drepper  <drepper@redhat.com>

* allocatestack.c (allocate_stack): If mprotect() fails free the
TLS memory.

nptl/ChangeLog
nptl/allocatestack.c

index 562e38bffd36ef936f3c7dea0edeeef5d90c7b71..4f5dc87d06023c8c9bff6b673a516f47533ca4ca 100644 (file)
@@ -1,3 +1,8 @@
+2003-03-08  Ulrich Drepper  <drepper@redhat.com>
+
+       * allocatestack.c (allocate_stack): If mprotect() fails free the
+       TLS memory.
+
 2003-03-07  Ulrich Drepper  <drepper@redhat.com>
 
        * sysdeps/i386/i486/bits/atomic.h: Fix a few unused definitions.
index 4aec875548061bd00ab3b41144830b16c23a121a..31cff2a1c2b872ec79bc3941b1f6274070ac9ed4 100644 (file)
@@ -439,9 +439,12 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
 
              lll_unlock (stack_cache_lock);
 
-             /* Free the memory regardless of whether the size of the
-                cache is over the limit or not.  If this piece of
-                memory caused problems we better do not use it
+             /* Get rid of the TLS block we allocated.  */
+             _dl_deallocate_tls (pd, false);
+
+             /* Free the stack memory regardless of whether the size
+                of the cache is over the limit or not.  If this piece
+                of memory caused problems we better do not use it
                 anymore.  Uh, and we ignore possible errors.  There
                 is nothing we could do.  */
              (void) munmap (mem, size);