aboutsummaryrefslogtreecommitdiffstats
path: root/src/eval.c
diff options
context:
space:
mode:
authorPhilipp Stephani2016-10-12 22:48:32 +0200
committerPhilipp Stephani2016-10-13 13:03:31 +0200
commitceb46f002145e986c944b2423404535019b7e62b (patch)
tree9db84af79ae0f3056bc502a25abb48ad781d42f9 /src/eval.c
parentd8374c4e95d6b2a0e839b3b49b12225222e8c721 (diff)
downloademacs-ceb46f002145e986c944b2423404535019b7e62b.tar.gz
emacs-ceb46f002145e986c944b2423404535019b7e62b.zip
Fix crash in evaluating functions
See Bug#24673 * src/eval.c (funcall_lambda): Fix crash for bogus functions such as (closure).
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/eval.c b/src/eval.c
index 13a41a2ae20..b94712d4579 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -2825,9 +2825,11 @@ funcall_lambda (Lisp_Object fun, ptrdiff_t nargs,
2825 { 2825 {
2826 if (EQ (XCAR (fun), Qclosure)) 2826 if (EQ (XCAR (fun), Qclosure))
2827 { 2827 {
2828 fun = XCDR (fun); /* Drop `closure'. */ 2828 Lisp_Object cdr = XCDR (fun); /* Drop `closure'. */
2829 if (! CONSP (cdr))
2830 xsignal1 (Qinvalid_function, fun);
2831 fun = cdr;
2829 lexenv = XCAR (fun); 2832 lexenv = XCAR (fun);
2830 CHECK_LIST_CONS (fun, fun);
2831 } 2833 }
2832 else 2834 else
2833 lexenv = Qnil; 2835 lexenv = Qnil;