summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2023-07-27 15:34:38 +0300
committerEli Zaretskii <eliz@gnu.org>2023-07-30 10:24:10 +0300
commit71419a60c3710549742c2489b7fce7783ac0f65c (patch)
treed2304572cde8bc7abcde5b41096db542cfee2dad
parentb2cb6e821603b53b88b99b5cbf24dc715fc25867 (diff)
downloademacs-71419a60c3710549742c2489b7fce7783ac0f65c.tar.gz
emacs-71419a60c3710549742c2489b7fce7783ac0f65c.tar.bz2
emacs-71419a60c3710549742c2489b7fce7783ac0f65c.zip
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) (cherry picked from commit 7ea3f39deec3d54914077455e70605a14eb7d200)
-rw-r--r--src/xdisp.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/xdisp.c b/src/xdisp.c
index fdb4acd71bf..9cddcfeda27 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -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)));