nptl: Handle NULL abstime [BZ #26394]

Since abstime passed to pthread_{clock|timed}join_np may be NULL, convert
to 64 bit abstime only if abstime isn't NULL.
This commit is contained in:
H.J. Lu 2020-08-15 11:06:35 -07:00
parent 23a7896d06
commit cb7e7a5ca1
2 changed files with 16 additions and 6 deletions

View File

@ -34,9 +34,15 @@ int
__pthread_clockjoin_np (pthread_t threadid, void **thread_return,
clockid_t clockid, const struct timespec *abstime)
{
struct __timespec64 ts64 = valid_timespec_to_timespec64 (*abstime);
return __pthread_clockjoin_np64 (threadid, thread_return, clockid, &ts64);
if (abstime != NULL)
{
struct __timespec64 ts64 = valid_timespec_to_timespec64 (*abstime);
return __pthread_clockjoin_np64 (threadid, thread_return, clockid,
&ts64);
}
else
return __pthread_clockjoin_np64 (threadid, thread_return, clockid,
NULL);
}
#endif
weak_alias (__pthread_clockjoin_np, pthread_clockjoin_np)

View File

@ -34,9 +34,13 @@ int
__pthread_timedjoin_np (pthread_t threadid, void **thread_return,
const struct timespec *abstime)
{
struct __timespec64 ts64 = valid_timespec_to_timespec64 (*abstime);
return __pthread_timedjoin_np64 (threadid, thread_return, &ts64);
if (abstime != NULL)
{
struct __timespec64 ts64 = valid_timespec_to_timespec64 (*abstime);
return __pthread_timedjoin_np64 (threadid, thread_return, &ts64);
}
else
return __pthread_timedjoin_np64 (threadid, thread_return, NULL);
}
#endif
weak_alias (__pthread_timedjoin_np, pthread_timedjoin_np)