aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2002-11-14 00:48:38 +0000
committerRoland McGrath <roland@gnu.org>2002-11-14 00:48:38 +0000
commitcdedcc7943114bbbcbc2be1a0ef5716b0ef2e862 (patch)
treef1a610e971d0fe8da26eafb54d9c680de28ce1e4
parente2df2b3e64a97bc698d6492402a94c8b7131963a (diff)
downloadglibc-cdedcc7943114bbbcbc2be1a0ef5716b0ef2e862.tar
glibc-cdedcc7943114bbbcbc2be1a0ef5716b0ef2e862.tar.gz
glibc-cdedcc7943114bbbcbc2be1a0ef5716b0ef2e862.tar.bz2
glibc-cdedcc7943114bbbcbc2be1a0ef5716b0ef2e862.zip
* sysdeps/generic/dl-tls.c (_dl_allocate_tls_storage): Zero the space
for the new TCB.
-rw-r--r--ChangeLog5
-rw-r--r--linuxthreads/ChangeLog4
-rw-r--r--sysdeps/generic/dl-tls.c4
3 files changed, 13 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 11d3d19f6e..27ab728215 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2002-11-13 Roland McGrath <roland@redhat.com>
+
+ * sysdeps/generic/dl-tls.c (_dl_allocate_tls_storage): Zero the space
+ for the new TCB.
+
2002-11-13 Andreas Jaeger <aj@suse.de>
* sysdeps/unix/sysv/linux/x86_64/sigaction.c: Check for visibility
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index 414e309bdf..fc48b50b78 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,3 +1,7 @@
+2002-11-13 Roland McGrath <roland@redhat.com>
+
+ * Examples/ex6.c (main): Improve error reporting.
+
2002-11-04 Ulrich Drepper <drepper@redhat.com>
* sysdeps/i386/Makefile: Compile pthread.c and sighandler.c with
diff --git a/sysdeps/generic/dl-tls.c b/sysdeps/generic/dl-tls.c
index 2c68a251b6..014c3a4809 100644
--- a/sysdeps/generic/dl-tls.c
+++ b/sysdeps/generic/dl-tls.c
@@ -262,6 +262,10 @@ _dl_allocate_tls_storage (void)
result = (char *) result + GL(dl_tls_static_size) - TLS_TCB_SIZE;
# endif
+ /* Clear the TCB data structure. We can't ask the caller (i.e.
+ libpthread) to do it, because we will initialize the DTV et al. */
+ memset (result, 0, TLS_TCB_SIZE);
+
result = allocate_dtv (result);
if (result == NULL)
free (allocated);