[PATCH] nptl: Handle NULL abstime [BZ #26394]
Andreas Schwab
schwab@suse.de
Mon Aug 17 10:22:16 GMT 2020
On Aug 15 2020, H.J. Lu wrote:
> From fa1f97680fca290a378c449f2b63682ee348fd2c Mon Sep 17 00:00:00 2001
> From: "H.J. Lu" <hjl.tools@gmail.com>
> Date: Sat, 15 Aug 2020 11:06:35 -0700
> Subject: [PATCH] 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(-)
>
> diff --git a/nptl/pthread_clockjoin.c b/nptl/pthread_clockjoin.c
> index 3cd780f688..0d780d6f4b 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)
(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..a7b3cb35d2 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)
(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)
Andreas.
--
Andreas Schwab, SUSE Labs, schwab@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."
More information about the Libc-alpha
mailing list