From 6d77715e0d8101b1e84ea49b5e8141d6c0775020 Mon Sep 17 00:00:00 2001 From: Laria Carolin Chabowski Date: Sat, 6 Aug 2022 12:53:24 +0200 Subject: [PATCH] eval: Set returning_from_matcher while cse ist still valid matcher_init_matching appends an element of the call stack, so the cse pointer into the stack is no longer valid. --- src/eval.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/eval.c b/src/eval.c index 0c410ef..fc23a2f 100644 --- a/src/eval.c +++ b/src/eval.c @@ -637,8 +637,8 @@ evaluate(apfl_ctx ctx, struct func_call_stack_entry *cse) // So this new CSE gets executed. By setting returning_from_matcher, we know that we came from the matcher, // once it returns. - matcher_init_matching(ctx, cse->matcher); cse->returning_from_matcher = true; + matcher_init_matching(ctx, cse->matcher); return; case INSN_MATCHER_DROP: