aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/generic
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2002-10-11 09:18:04 +0000
committerRoland McGrath <roland@gnu.org>2002-10-11 09:18:04 +0000
commit2a4f7d66b926bc58b6b5e87d227fd8f01b218ca0 (patch)
treead36dc09c3e28bb07170f23a8fde46ef7b0b8ef5 /sysdeps/generic
parentcfd8a63a1d2b2c28ea5741f76127c9347d686c2e (diff)
downloadglibc-2a4f7d66b926bc58b6b5e87d227fd8f01b218ca0.tar
glibc-2a4f7d66b926bc58b6b5e87d227fd8f01b218ca0.tar.gz
glibc-2a4f7d66b926bc58b6b5e87d227fd8f01b218ca0.tar.bz2
glibc-2a4f7d66b926bc58b6b5e87d227fd8f01b218ca0.zip
* sysdeps/generic/dl-tls.c (__tls_get_addr): After freeing block in
now-unused dtv slot, reset the slot to TLS_DTV_UNALLOCATED. * elf/tls-macros.h [__x86_64__] (TLS_GD): Fix the sequence with the proper set of no-op insn prefixes. * elf/tst-tls8.c (do_test): Use %zd format for l_tls_modid members.
Diffstat (limited to 'sysdeps/generic')
-rw-r--r--sysdeps/generic/dl-tls.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sysdeps/generic/dl-tls.c b/sysdeps/generic/dl-tls.c
index fe8f791638..a6428652cf 100644
--- a/sysdeps/generic/dl-tls.c
+++ b/sysdeps/generic/dl-tls.c
@@ -500,7 +500,10 @@ __tls_get_addr (GET_ADDR_ARGS)
/* If this modid was used at some point the memory
might still be allocated. */
if (dtv[total + cnt].pointer != TLS_DTV_UNALLOCATED)
- free (dtv[total + cnt].pointer);
+ {
+ free (dtv[total + cnt].pointer);
+ dtv[total + cnt].pointer = TLS_DTV_UNALLOCATED;
+ }
continue;
}