about summary refs log tree commit diff
path: root/nptl/sysdeps/pthread/pthread_rwlock_timedrdlock.c
diff options
context:
space:
mode:
Diffstat (limited to 'nptl/sysdeps/pthread/pthread_rwlock_timedrdlock.c')
-rw-r--r--nptl/sysdeps/pthread/pthread_rwlock_timedrdlock.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/nptl/sysdeps/pthread/pthread_rwlock_timedrdlock.c b/nptl/sysdeps/pthread/pthread_rwlock_timedrdlock.c
index 2cba0d3c88..85cc176a9a 100644
--- a/nptl/sysdeps/pthread/pthread_rwlock_timedrdlock.c
+++ b/nptl/sysdeps/pthread/pthread_rwlock_timedrdlock.c
@@ -70,7 +70,8 @@ pthread_rwlock_timedrdlock (rwlock, abstime)
 	 performed if we would not block at all simply moving the test
 	 to the front is no option.  Replicating all the code is
 	 costly while this test is not.  */
-      if (__builtin_expect (abstime->tv_nsec >= 1000000000, 0))
+      if (__builtin_expect (abstime->tv_nsec >= 1000000000
+                            || abstime->tv_sec < 0, 0))
 	{
 	  result = EINVAL;
 	  break;