diff options
author | Rich Felker <dalias@aerifal.cx> | 2011-09-27 18:56:29 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2011-09-27 18:56:29 -0400 |
commit | 3ac092bd7d700c6316c64660e2a722a2f85652a5 (patch) | |
tree | 16b292d464228b0757c91fc1664cd5e87defb19e | |
parent | 823813e3f4d7a8d3848e092bcdf975c8b94b6194 (diff) | |
download | musl-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.c | 2 |
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) |