Skip to content

Commit a8e4e05

Browse files
committed
Fix missing NULL-check in pthread_cond_init(3)
1 parent 2546e75 commit a8e4e05

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

kos/src/libc/user/pthread.c

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5043,13 +5043,15 @@ NOTHROW_NCX(LIBCCALL libc_pthread_cond_init)(pthread_cond_t *__restrict self,
50435043
pthread_condattr_t const *__restrict cond_attr)
50445044
/*[[[body:libc_pthread_cond_init]]]*/
50455045
{
5046-
clockid_t clock_id;
50475046
bzero(self, sizeof(*self));
5048-
clock_id = (cond_attr->ca_value & PTHREAD_CONDATTR_CLOCKID_MASK) >> PTHREAD_CONDATTR_CLOCKID_SHIFT;
5049-
if (clock_id == CLOCK_REALTIME)
5050-
self->c_flags |= LFUTEX_WAIT_FLAG_TIMEOUT_REALTIME;
5051-
if (!(cond_attr->ca_value & PTHREAD_CONDATTR_FLAG_PSHARED))
5052-
self->c_flags |= LFUTEX_WAIT_FLAG_TIMEOUT_PRIVATE;
5047+
if (cond_attr) {
5048+
clockid_t clock_id = (cond_attr->ca_value & PTHREAD_CONDATTR_CLOCKID_MASK) >>
5049+
PTHREAD_CONDATTR_CLOCKID_SHIFT;
5050+
if (clock_id == CLOCK_REALTIME)
5051+
self->c_flags |= LFUTEX_WAIT_FLAG_TIMEOUT_REALTIME;
5052+
if (!(cond_attr->ca_value & PTHREAD_CONDATTR_FLAG_PSHARED))
5053+
self->c_flags |= LFUTEX_WAIT_FLAG_TIMEOUT_PRIVATE;
5054+
}
50535055
return EOK;
50545056
}
50555057
/*[[[end:libc_pthread_cond_init]]]*/

0 commit comments

Comments
 (0)