From bea843dee19f2ac69f0d7a753d3bd917760a0344 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Thu, 28 Oct 2021 20:52:41 +0300 Subject: [PATCH] Avoid assertion violations in 'lookup-key' * src/keymap.c (Flookup_key): Don't call ASIZE unless KEY is a vector. This avoids assertion violations when KEY is a string. --- src/keymap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/keymap.c b/src/keymap.c index f7529f808bf2..50f896d17cf8 100644 --- a/src/keymap.c +++ b/src/keymap.c @@ -1253,8 +1253,8 @@ recognize the default bindings, just as `read-key-sequence' does. */) /* Menu definitions might use mixed case symbols (notably in old versions of `easy-menu-define'). We accept this variation for backwards-compatibility. (Bug#50752) */ - ptrdiff_t key_len = ASIZE (key); - if (VECTORP (key) && key_len > 0 && EQ (AREF (key, 0), Qmenu_bar)) + ptrdiff_t key_len = VECTORP (key) ? ASIZE (key) : 0; + if (key_len > 0 && EQ (AREF (key, 0), Qmenu_bar)) { Lisp_Object new_key = make_vector (key_len, Qnil); for (int i = 0; i < key_len; ++i)