fix crash in pthread_cond_wait mutex-locked check
authorRich Felker <dalias@aerifal.cx>
Tue, 27 Sep 2011 22:56:29 +0000 (18:56 -0400)
committerRich Felker <dalias@aerifal.cx>
Tue, 27 Sep 2011 22:56:29 +0000 (18:56 -0400)
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.

src/thread/pthread_cond_timedwait.c

index 60ebbb97454c5e94e51b0632ca76ead79ac752a5..56e71c2d991ec5f45bd24f110284f9a146483b50 100644 (file)
@@ -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)