Kaynağa Gözat

LibWasm: Limit module memory to 65536 pages

The spec mentions this, and anything past that can't be correctly
addressed by the 32-bit indices anyhow.
Ali Mohammad Pur 4 yıl önce
ebeveyn
işleme
c4d4c657d0

+ 3 - 0
Userland/Libraries/LibWasm/AbstractMachine/AbstractMachine.h

@@ -350,6 +350,9 @@ public:
         if (size_to_grow == 0)
             return true;
         auto new_size = m_data.size() + size_to_grow;
+        // Can't grow past 2^16 pages.
+        if (new_size >= Constants::page_size * 65536)
+            return false;
         if (auto max = m_type.limits().max(); max.has_value()) {
             if (max.value() * Constants::page_size < new_size)
                 return false;