diff options
author | davidxu <davidxu@FreeBSD.org> | 2010-08-27 03:23:07 +0000 |
---|---|---|
committer | davidxu <davidxu@FreeBSD.org> | 2010-08-27 03:23:07 +0000 |
commit | 4190ab4bbd5d07a0a9a2831a54c6313faef67286 (patch) | |
tree | fb1aeb8880e0ac391c0bcd9c9a3a3db3e465ca72 /lib/libthr | |
parent | 8a3810443daf6b68b48f1e5ccc9c115b794491a0 (diff) | |
download | FreeBSD-src-4190ab4bbd5d07a0a9a2831a54c6313faef67286.zip FreeBSD-src-4190ab4bbd5d07a0a9a2831a54c6313faef67286.tar.gz |
clear lock to zero state if it is destroyed.
Diffstat (limited to 'lib/libthr')
-rw-r--r-- | lib/libthr/thread/thr_rtld.c | 3 |
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); } |