[wasm][fuzzer] Detect stack overflow in interpreter
The {InterpretWasmModuleForTesting} is used to determine whether a module is cheap enough to execute the compiled code (there is a cap on the number of executed instructions). If the module executes too much code, {InterpretWasmModuleForTesting} returns {false}. The check for a stack overflow was missing though, so it would return {true} in that case, and the compiled code would be executed. This can lead to timeouts. R=ahaas@chromium.org Bug: chromium:947909 Change-Id: I0b003963d3ca548f388fdf4ec4995c4199656f91 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1693011 Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#62617}
This commit is contained in:
parent
c0dbde3afd
commit
5d1c9d5f71
@ -125,7 +125,11 @@ bool InterpretWasmModuleForTesting(Isolate* isolate,
|
||||
arguments.get());
|
||||
WasmInterpreter::State interpreter_result = thread->Run(kMaxNumSteps);
|
||||
|
||||
isolate->clear_pending_exception();
|
||||
if (isolate->has_pending_exception()) {
|
||||
// Stack overflow during interpretation.
|
||||
isolate->clear_pending_exception();
|
||||
return false;
|
||||
}
|
||||
|
||||
return interpreter_result != WasmInterpreter::PAUSED;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user