summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2017-05-30 14:20:57 -0700
committerAlon Zakai <alonzakai@gmail.com>2017-06-01 13:17:44 -0700
commit1c7e82a4c6035d9ab52d892065bfff709a4424f8 (patch)
tree4bb8a94feeda562d9ea06894bbd7ce83690a45a4
parent08849db00cca62b3886458665b0bf2952f42a9d5 (diff)
downloadbinaryen-1c7e82a4c6035d9ab52d892065bfff709a4424f8.tar.gz
binaryen-1c7e82a4c6035d9ab52d892065bfff709a4424f8.tar.bz2
binaryen-1c7e82a4c6035d9ab52d892065bfff709a4424f8.zip
handle out of range break offset parsing
-rw-r--r--src/wasm/wasm-s-parser.cpp2
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()) {