Print this page
3830 SIGQUEUE_MAX's limit of 32 is too low

@@ -2371,12 +2371,12 @@
                 }
         }
         return (0);
 }
 
-#ifndef UCHAR_MAX
-#define UCHAR_MAX       255
+#ifndef INT_MAX
+#define INT_MAX 2147483647
 #endif
 
 /*
  * The entire pool (with maxcount entries) is pre-allocated at
  * the first sigqueue/signotify call.

@@ -2387,15 +2387,15 @@
         size_t i;
         sigqueue_t *sq, *next;
         sigqhdr_t *sqh;
 
         i = (maxcount * size) + sizeof (sigqhdr_t);
-        ASSERT(maxcount <= UCHAR_MAX && i <= USHRT_MAX);
+        ASSERT(maxcount <= INT_MAX);
         sqh = kmem_alloc(i, KM_SLEEP);
-        sqh->sqb_count = (uchar_t)maxcount;
-        sqh->sqb_maxcount = (uchar_t)maxcount;
-        sqh->sqb_size = (ushort_t)i;
+        sqh->sqb_count = maxcount;
+        sqh->sqb_maxcount = maxcount;
+        sqh->sqb_size = i;
         sqh->sqb_pexited = 0;
         sqh->sqb_sent = 0;
         sqh->sqb_free = sq = (sigqueue_t *)(sqh + 1);
         for (i = maxcount - 1; i != 0; i--) {
                 next = (sigqueue_t *)((uintptr_t)sq + size);