diff options
author | Alon Zakai <azakai@google.com> | 2023-03-17 14:11:52 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-17 14:11:52 -0700 |
commit | 8f57b66171f6166f35f8549ea5cf7c047a2a7a28 (patch) | |
tree | 433a5c18df7b4a64872899c6d6afa0e1f8c9be1f /src | |
parent | 69ff3bf4f10d1f50343a3db7e4730b576f679c70 (diff) | |
download | binaryen-8f57b66171f6166f35f8549ea5cf7c047a2a7a28.tar.gz binaryen-8f57b66171f6166f35f8549ea5cf7c047a2a7a28.tar.bz2 binaryen-8f57b66171f6166f35f8549ea5cf7c047a2a7a28.zip |
[Exceptions] Fix error on bad delegate index (#5587)
Fixes #5584
Diffstat (limited to 'src')
-rw-r--r-- | src/wasm/wasm-binary.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/wasm/wasm-binary.cpp b/src/wasm/wasm-binary.cpp index 9368325b0..5326972b0 100644 --- a/src/wasm/wasm-binary.cpp +++ b/src/wasm/wasm-binary.cpp @@ -2560,7 +2560,12 @@ void WasmBinaryBuilder::readFunctions() { assert(depth == 0); assert(breakStack.empty()); assert(breakTargetNames.empty()); - assert(exceptionTargetNames.empty()); + if (!exceptionTargetNames.empty()) { + // A delegate index existed that did not end up referring to any valid + // outer try-catch (we remove valid ones from exceptionTargetNames as we + // go). + throwError("exceptionTargetNames not empty - invalid delegate"); + } if (!expressionStack.empty()) { throwError("stack not empty on function exit"); } |