From 7ea3f39deec3d54914077455e70605a14eb7d200 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Thu, 27 Jul 2023 15:34:38 +0300 Subject: [PATCH] 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))); -- 2.39.2