Ver Fonte

prevent data overflow on 32 bit platform for memory.grow

TL há 1 ano atrás
pai
commit
dfcadc6202
1 ficheiros alterados com 6 adições e 0 exclusões
  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 > 0);
     bh_assert(new_size > old_size);
     bh_assert(new_size > old_size);
 
 
+#if UINTPTR_MAX == UINT32_MAX
+    if (new_size == 4 * (uint64)BH_GB) {
+        return NULL;
+    }
+#endif
+
     if (mapped_mem) {
     if (mapped_mem) {
         new_mem = os_mremap(mapped_mem, old_size, new_size);
         new_mem = os_mremap(mapped_mem, old_size, new_size);
     }
     }