diff options
Diffstat (limited to 'src/shell-interface.h')
-rw-r--r-- | src/shell-interface.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/shell-interface.h b/src/shell-interface.h index 8d35905ee..8fc1c362d 100644 --- a/src/shell-interface.h +++ b/src/shell-interface.h @@ -217,8 +217,14 @@ struct ShellExternalInterface : ModuleInstance::ExternalInterface { void tableStore(Address addr, Name entry) override { table[addr] = entry; } - void growMemory(Address /*oldSize*/, Address newSize) override { + bool growMemory(Address /*oldSize*/, Address newSize) override { + // Apply a reasonable limit on memory size, 1GB, to avoid DOS on the + // interpreter. + if (newSize > 1024 * 1024 * 1024) { + return false; + } memory.resize(newSize); + return true; } void trap(const char* why) override { |