]> git.eshelyaron.com Git - emacs.git/commitdiff
Avoid crashes due to invalid 'mode-line-format'
authorEli Zaretskii <eliz@gnu.org>
Thu, 27 Jul 2023 12:34:38 +0000 (15:34 +0300)
committerEli Zaretskii <eliz@gnu.org>
Sun, 30 Jul 2023 07:24:10 +0000 (10:24 +0300)
* src/xdisp.c (display_mode_element, redisplay_window_error):
Don't take XCAR of what can be Qnil.  (Bug#64893)

(cherry picked from commit 7ea3f39deec3d54914077455e70605a14eb7d200)

src/xdisp.c

index fdb4acd71bf55f299fd61126f774710fae4e6023..9cddcfeda2759189c80dc1f05b15f06197557cf4 100644 (file)
@@ -17601,6 +17601,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))),
@@ -27091,7 +27092,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)));