From cb7e7a5ca1d6d25d59bc038bdc09630e507c41e5 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Sat, 15 Aug 2020 11:06:35 -0700 Subject: 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. --- nptl/pthread_clockjoin.c | 12 +++++++++--- nptl/pthread_timedjoin.c | 10 +++++++--- 2 files changed, 16 insertions(+), 6 deletions(-) (limited to 'nptl') diff --git a/nptl/pthread_clockjoin.c b/nptl/pthread_clockjoin.c index 3cd780f688..0baba1e83d 100644 --- a/nptl/pthread_clockjoin.c +++ b/nptl/pthread_clockjoin.c @@ -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) diff --git a/nptl/pthread_timedjoin.c b/nptl/pthread_timedjoin.c index 6164ae7060..6ade58853c 100644 --- a/nptl/pthread_timedjoin.c +++ b/nptl/pthread_timedjoin.c @@ -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) -- cgit v1.2.3-70-g09d2