emacs-diffs
[Top][All Lists]
Advanced

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

master 7ea3f39deec: Avoid crashes due to invalid 'mode-line-format'


From: Eli Zaretskii
Subject: master 7ea3f39deec: Avoid crashes due to invalid 'mode-line-format'
Date: Thu, 27 Jul 2023 08:34:31 -0400 (EDT)

branch: master
commit 7ea3f39deec3d54914077455e70605a14eb7d200
Author: Eli Zaretskii <eliz@gnu.org>
Commit: Eli Zaretskii <eliz@gnu.org>

    Avoid crashes due to invalid 'mode-line-format'
    
    * src/xdisp.c (display_mode_element, redisplay_window_error):
    Don't take XCAR of what can be Qnil.  (Bug#64893)
---
 src/xdisp.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/xdisp.c b/src/xdisp.c
index e061b602e0d..aa49749edf9 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -17644,6 +17644,7 @@ redisplay_window_error (Lisp_Object error_data)
   if (max_redisplay_ticks > 0
       && CONSP (error_data)
       && EQ (XCAR (error_data), Qerror)
+      && CONSP (XCDR (error_data))
       && STRINGP (XCAR (XCDR (error_data))))
     Vdelayed_warnings_list = Fcons (list2 (XCAR (error_data),
                                           XCAR (XCDR (error_data))),
@@ -27179,7 +27180,7 @@ display_mode_element (struct it *it, int depth, int 
field_width, int precision,
 
                    oprops = Fcopy_sequence (oprops);
                    tem = props;
-                   while (CONSP (tem))
+                   while (CONSP (tem) && CONSP (XCDR (tem)))
                      {
                        oprops = plist_put (oprops, XCAR (tem),
                                            XCAR (XCDR (tem)));



reply via email to

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