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.
diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c
index 76e62f7..5f19592 100644
--- a/src/ex_cmds2.c
+++ b/src/ex_cmds2.c
@@ -1235,7 +1235,7 @@
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;