summaryrefslogtreecommitdiffstats
path: root/lib/libthr/thread
diff options
context:
space:
mode:
authordavidxu <davidxu@FreeBSD.org>2010-08-27 03:23:07 +0000
committerdavidxu <davidxu@FreeBSD.org>2010-08-27 03:23:07 +0000
commit4190ab4bbd5d07a0a9a2831a54c6313faef67286 (patch)
treefb1aeb8880e0ac391c0bcd9c9a3a3db3e465ca72 /lib/libthr/thread
parent8a3810443daf6b68b48f1e5ccc9c115b794491a0 (diff)
downloadFreeBSD-src-4190ab4bbd5d07a0a9a2831a54c6313faef67286.zip
FreeBSD-src-4190ab4bbd5d07a0a9a2831a54c6313faef67286.tar.gz
clear lock to zero state if it is destroyed.
Diffstat (limited to 'lib/libthr/thread')
-rw-r--r--lib/libthr/thread/thr_rtld.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/libthr/thread/thr_rtld.c b/lib/libthr/thread/thr_rtld.c
index 2560a94..d9041ad 100644
--- a/lib/libthr/thread/thr_rtld.c
+++ b/lib/libthr/thread/thr_rtld.c
@@ -81,8 +81,11 @@ static void
_thr_rtld_lock_destroy(void *lock)
{
int locki;
+ size_t i;
locki = (struct rtld_lock *)lock - &lock_place[0];
+ for (i = 0; i < sizeof(struct rtld_lock); ++i)
+ ((char *)lock)[i] = 0;
busy_places &= ~(1 << locki);
}
OpenPOWER on IntegriCloud