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.
This commit is contained in:
Ali Mohammad Pur 2021-07-06 14:03:54 +04:30 committed by Ali Mohammad Pur
commit c4d4c657d0
Notes: sideshowbarker 2024-07-18 10:18:21 +09:00

View file

@ -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;