summaryrefslogtreecommitdiff
path: root/src/shell-interface.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/shell-interface.h')
-rw-r--r--src/shell-interface.h8
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 {