From fa52782f5c4eaef7138534766dfc8a29465785b2 Mon Sep 17 00:00:00 2001 From: Pip Cet Date: Fri, 29 Apr 2022 14:14:19 +0200 Subject: [PATCH] Make timer_check even more resilient * src/keyboard.c (timer_check): Inhibit atimers while making the copy of the timer list (bug#21380). This prevents an extremely unlikely segfault. --- src/keyboard.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/keyboard.c b/src/keyboard.c index 19c8fdf1dc0..69e741070c4 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -4633,6 +4633,8 @@ timer_check (void) Lisp_Object tem = Vinhibit_quit; Vinhibit_quit = Qt; + block_input (); + turn_on_atimers (false); /* We use copies of the timers' lists to allow a timer to add itself again, without locking up Emacs if the newly added timer is @@ -4646,6 +4648,8 @@ timer_check (void) else idle_timers = Qnil; + turn_on_atimers (true); + unblock_input (); Vinhibit_quit = tem; do -- 2.39.2