summaryrefslogtreecommitdiff
path: root/src/interp/binary-reader-interp.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp/binary-reader-interp.cc')
-rw-r--r--src/interp/binary-reader-interp.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/interp/binary-reader-interp.cc b/src/interp/binary-reader-interp.cc
index e1696ce2..05296220 100644
--- a/src/interp/binary-reader-interp.cc
+++ b/src/interp/binary-reader-interp.cc
@@ -1139,6 +1139,9 @@ Result BinaryReaderInterp::OnCallIndirectExpr(Index sig_index,
}
Result BinaryReaderInterp::OnReturnCallExpr(Index func_index) {
+ CHECK_RESULT(
+ validator_.OnReturnCall(GetLocation(), Var(func_index, GetLocation())));
+
FuncType& func_type = func_types_[func_index];
Index drop_count, keep_count, catch_drop_count;
@@ -1169,6 +1172,10 @@ Result BinaryReaderInterp::OnReturnCallExpr(Index func_index) {
Result BinaryReaderInterp::OnReturnCallIndirectExpr(Index sig_index,
Index table_index) {
+ CHECK_RESULT(validator_.OnReturnCallIndirect(
+ GetLocation(), Var(sig_index, GetLocation()),
+ Var(table_index, GetLocation())));
+
FuncType& func_type = module_.func_types[sig_index];
Index drop_count, keep_count, catch_drop_count;