diff --git a/ChangeLog b/ChangeLog index 11d3d19f6e..27ab728215 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2002-11-13 Roland McGrath + + * sysdeps/generic/dl-tls.c (_dl_allocate_tls_storage): Zero the space + for the new TCB. + 2002-11-13 Andreas Jaeger * 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 + + * Examples/ex6.c (main): Improve error reporting. + 2002-11-04 Ulrich Drepper * 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);