diff options
author | Alon Zakai <alonzakai@gmail.com> | 2017-05-30 14:20:57 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2017-06-01 13:17:44 -0700 |
commit | 1c7e82a4c6035d9ab52d892065bfff709a4424f8 (patch) | |
tree | 4bb8a94feeda562d9ea06894bbd7ce83690a45a4 /src/wasm/wasm-s-parser.cpp | |
parent | 08849db00cca62b3886458665b0bf2952f42a9d5 (diff) | |
download | binaryen-1c7e82a4c6035d9ab52d892065bfff709a4424f8.tar.gz binaryen-1c7e82a4c6035d9ab52d892065bfff709a4424f8.tar.bz2 binaryen-1c7e82a4c6035d9ab52d892065bfff709a4424f8.zip |
handle out of range break offset parsing
Diffstat (limited to 'src/wasm/wasm-s-parser.cpp')
-rw-r--r-- | src/wasm/wasm-s-parser.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/wasm/wasm-s-parser.cpp b/src/wasm/wasm-s-parser.cpp index 60d424d7e..5ea8f2b0f 100644 --- a/src/wasm/wasm-s-parser.cpp +++ b/src/wasm/wasm-s-parser.cpp @@ -1321,6 +1321,8 @@ Name SExpressionWasmBuilder::getLabel(Element& s) { offset = std::stoll(s.c_str(), nullptr, 0); } catch (std::invalid_argument) { throw ParseException("invalid break offset"); + } catch (std::out_of_range) { + throw ParseException("out of range break offset"); } if (offset > nameMapper.labelStack.size()) throw ParseException("invalid label", s.line, s.col); if (offset == nameMapper.labelStack.size()) { |