SIZE_MAX is a great macro, and does unfortunately not exist everywhere.
Since we check against half of it, using bitwise shift to calculate the
value of half SIZE_MAX should be safe enough.
Reviewed-by: Tim Hudson <tjh@openssl.org>
size_t len)
{
/* Sanity check for negative values. */
+#ifdef SIZE_MAX
if (len > (size_t)(SIZE_MAX / 2))
return 0;
+#else
+ if (len > ((size_t)2 << (sizeof(size_t) * 8 - 1)))
+ return 0;
+#endif
pkt->curr = buf;
pkt->remaining = len;