about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2011-09-27 18:56:29 -0400
committerRich Felker <dalias@aerifal.cx>2011-09-27 18:56:29 -0400
commit3ac092bd7d700c6316c64660e2a722a2f85652a5 (patch)
tree16b292d464228b0757c91fc1664cd5e87defb19e
parent823813e3f4d7a8d3848e092bcdf975c8b94b6194 (diff)
downloadmusl-3ac092bd7d700c6316c64660e2a722a2f85652a5.tar.gz
musl-3ac092bd7d700c6316c64660e2a722a2f85652a5.tar.xz
musl-3ac092bd7d700c6316c64660e2a722a2f85652a5.zip
fix crash in pthread_cond_wait mutex-locked check
it was assuming the result of the condition it was supposed to be
checking for, i.e. that the thread ptr had already been initialized by
pthread_mutex_lock. use the slower call to be safe.
-rw-r--r--src/thread/pthread_cond_timedwait.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/thread/pthread_cond_timedwait.c b/src/thread/pthread_cond_timedwait.c
index 60ebbb97..56e71c2d 100644
--- a/src/thread/pthread_cond_timedwait.c
+++ b/src/thread/pthread_cond_timedwait.c
@@ -37,7 +37,7 @@ int pthread_cond_timedwait(pthread_cond_t *c, pthread_mutex_t *m, const struct t
 	struct cm cm = { .c=c, .m=m };
 	int r, e=0, seq;
 
-	if (m->_m_type && (m->_m_lock&INT_MAX) != __pthread_self()->tid)
+	if (m->_m_type && (m->_m_lock&INT_MAX) != pthread_self()->tid)
 		return EPERM;
 
 	if (ts && ts->tv_nsec >= 1000000000UL)