Jelajahi Sumber

exparray: fix overflow

ambrop7 14 tahun lalu
induk
melakukan
e9f64b3370
1 mengubah file dengan 4 tambahan dan 0 penghapusan
  1. 4 0
      misc/exparray.h

+ 4 - 0
misc/exparray.h

@@ -76,6 +76,10 @@ static int ExpArray_resize (struct ExpArray *o, size_t size)
         newsize = 2 * newsize;
         newsize = 2 * newsize;
     }
     }
     
     
+    if (newsize > SIZE_MAX / o->esize) {
+        return 0;
+    }
+    
     void *newarr = realloc(o->v, newsize * o->esize);
     void *newarr = realloc(o->v, newsize * o->esize);
     if (!newarr) {
     if (!newarr) {
         return 0;
         return 0;