net: tcp: Don't increment snd.nxt
[akaros.git] / kern / src / kreallocarray.c
index d099721..625ad93 100644 (file)
@@ -22,7 +22,6 @@
  * if both s1 < MUL_NO_OVERFLOW and s2 < MUL_NO_OVERFLOW
  */
 enum {
-       SIZE_MAX = ~(size_t)0,
        MUL_NO_OVERFLOW = ((size_t)1 << (sizeof(size_t) * 4))
 };
 
@@ -34,3 +33,12 @@ void *kreallocarray(void *optr, size_t nmemb, size_t size, int flags)
        }
        return krealloc(optr, size * nmemb, flags);
 }
+
+void *kmalloc_array(size_t nmemb, size_t size, int flags)
+{
+       if (((nmemb >= MUL_NO_OVERFLOW) || (size >= MUL_NO_OVERFLOW)) &&
+           (nmemb > 0) && ((SIZE_MAX / nmemb) < size)) {
+               return NULL;
+       }
+       return kmalloc(size * nmemb, flags);
+}