]> git.eshelyaron.com Git - emacs.git/commitdiff
Make timer_check even more resilient
authorPip Cet <pipcet@gmail.com>
Fri, 29 Apr 2022 12:14:19 +0000 (14:14 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Fri, 29 Apr 2022 12:14:19 +0000 (14:14 +0200)
* 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

index 19c8fdf1dc0ce3f713286fa615d3a190b7e818ac..69e741070c4c724df74ccde5b12c9490759d3e4b 100644 (file)
@@ -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