]> git.eshelyaron.com Git - emacs.git/commitdiff
* src/fns.c (mapcar1): Less lax type checking
authorMattias EngdegÄrd <mattiase@acm.org>
Sun, 15 Jun 2025 08:08:33 +0000 (10:08 +0200)
committerEshel Yaron <me@eshelyaron.com>
Wed, 18 Jun 2025 08:13:56 +0000 (10:13 +0200)
Previously, mapcar etc would crash or return nonsense when passed a
record.  Found by Pip Cet.

(cherry picked from commit 08a7477d2205f4f4a9c6bcc184fdea060c33474b)

src/fns.c

index cdee485961636abdd34311ecb1680a0e22395cc2..a821d73b9e5b4165e31b9fad87e08143bbcac05e 100644 (file)
--- a/src/fns.c
+++ b/src/fns.c
@@ -3411,9 +3411,8 @@ mapcar1 (EMACS_INT leni, Lisp_Object *vals, Lisp_Object fn, Lisp_Object seq)
            vals[i_before] = dummy;
        }
     }
-  else
+  else if (BOOL_VECTOR_P (seq))
     {
-      eassert (BOOL_VECTOR_P (seq));
       for (EMACS_INT i = 0; i < leni; i++)
        {
          Lisp_Object dummy = calln (fn, bool_vector_ref (seq, i));
@@ -3421,6 +3420,8 @@ mapcar1 (EMACS_INT leni, Lisp_Object *vals, Lisp_Object fn, Lisp_Object seq)
            vals[i] = dummy;
        }
     }
+  else
+    wrong_type_argument (Qsequencep, seq);
 
   return leni;
 }