about summary refs log tree commit diff
path: root/sysdeps/htl
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/htl')
-rw-r--r--sysdeps/htl/sem-post.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sysdeps/htl/sem-post.c b/sysdeps/htl/sem-post.c
index 77f297314e..2e0be8fc49 100644
--- a/sysdeps/htl/sem-post.c
+++ b/sysdeps/htl/sem-post.c
@@ -30,6 +30,13 @@ __sem_post (sem_t *sem)
   if (sem->__value > 0)
     /* Do a quick up.  */
     {
+      if (sem->__value == SEM_VALUE_MAX)
+	{
+	  __pthread_spin_unlock (&sem->__lock);
+	  errno = EOVERFLOW;
+	  return -1;
+	}
+
       assert (sem->__queue == NULL);
       sem->__value++;
       __pthread_spin_unlock (&sem->__lock);