Bläddra i källkod

prevent data overflow on 32 bit platform for memory.grow

TL 1 år sedan
förälder
incheckning
dfcadc6202
1 ändrade filer med 6 tillägg och 0 borttagningar
  1. 6 0
      core/iwasm/common/wasm_memory.c

+ 6 - 0
core/iwasm/common/wasm_memory.c

@@ -1253,6 +1253,12 @@ wasm_mremap_linear_memory(void *mapped_mem, uint64 old_size, uint64 new_size,
     bh_assert(new_size > 0);
     bh_assert(new_size > old_size);
 
+#if UINTPTR_MAX == UINT32_MAX
+    if (new_size == 4 * (uint64)BH_GB) {
+        return NULL;
+    }
+#endif
+
     if (mapped_mem) {
         new_mem = os_mremap(mapped_mem, old_size, new_size);
     }