]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix crash in evaluating functions
authorPhilipp Stephani <phst@google.com>
Wed, 12 Oct 2016 20:48:32 +0000 (22:48 +0200)
committerPhilipp Stephani <phst@google.com>
Thu, 13 Oct 2016 11:03:31 +0000 (13:03 +0200)
See Bug#24673

* src/eval.c (funcall_lambda): Fix crash for bogus functions such
as (closure).

src/eval.c

index 13a41a2ae200c4e7dddf72e8a6c01931f86b4744..b94712d45795969d7cd4698fadc49276d2b56af1 100644 (file)
@@ -2825,9 +2825,11 @@ funcall_lambda (Lisp_Object fun, ptrdiff_t nargs,
     {
       if (EQ (XCAR (fun), Qclosure))
        {
-         fun = XCDR (fun);     /* Drop `closure'.  */
+         Lisp_Object cdr = XCDR (fun); /* Drop `closure'.  */
+         if (! CONSP (cdr))
+           xsignal1 (Qinvalid_function, fun);
+         fun = cdr;
          lexenv = XCAR (fun);
-         CHECK_LIST_CONS (fun, fun);
        }
       else
        lexenv = Qnil;