From cae24be4a808d60313913cc6feea6c2bee2e2a42 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Mon, 10 Jul 2017 22:12:10 +0200 Subject: patch 8.0.0705: crash when there is an error in a timer callback Problem: Crash when there is an error in a timer callback. (Aron Griffis, Ozaki Kiichi) Solution: Check did_throw before discarding an exception. NULLify current_exception when no longer valid. --- src/ex_cmds2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/ex_cmds2.c') diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c index 76e62f7a0b..5f19592340 100644 --- a/src/ex_cmds2.c +++ b/src/ex_cmds2.c @@ -1235,7 +1235,7 @@ check_due_timer(void) if (called_emsg) { ++timer->tr_emsg_count; - if (!did_throw_save && current_exception != NULL) + if (!did_throw_save && did_throw && current_exception != NULL) discard_current_exception(); } did_emsg = did_emsg_save; -- cgit v1.2.3