emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 8364f058b8: Be more resilient towards errors during error handlin


From: Lars Ingebrigtsen
Subject: master 8364f058b8: Be more resilient towards errors during error handling
Date: Thu, 5 May 2022 07:22:48 -0400 (EDT)

branch: master
commit 8364f058b821eba31f84dcded175cca403a965a5
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>

    Be more resilient towards errors during error handling
    
    * src/print.c (print_error_message): Avoid infinite recursion if
    `substitute-command-keys' bugs out (bug#55269).
---
 src/print.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/print.c b/src/print.c
index 54d8bdfa3d..d7583282b6 100644
--- a/src/print.c
+++ b/src/print.c
@@ -954,7 +954,14 @@ print_error_message (Lisp_Object data, Lisp_Object stream, 
const char *context,
       errmsg = Fget (errname, Qerror_message);
       /* During loadup 'substitute-command-keys' might not be available.  */
       if (!NILP (Ffboundp (Qsubstitute_command_keys)))
-       errmsg = call1 (Qsubstitute_command_keys, errmsg);
+       {
+         /* `substitute-command-keys' may bug out, which would lead
+            to infinite recursion when we're called from
+            skip_debugger, so ignore errors.  */
+         Lisp_Object subs = safe_call1 (Qsubstitute_command_keys, errmsg);
+         if (!NILP (subs))
+           errmsg = subs;
+       }
 
       file_error = Fmemq (Qfile_error, error_conditions);
     }



reply via email to

[Prev in Thread] Current Thread [Next in Thread]