From 67c785179eca35d78ac0ec50344cbb95da54acce Mon Sep 17 00:00:00 2001 From: Sami Samhuri Date: Thu, 21 Apr 2011 15:40:00 -0700 Subject: [PATCH] check # of fixed args when applying vararg functions --- src/eval.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/eval.c b/src/eval.c index 2dfdced..daeef8b 100644 --- a/src/eval.c +++ b/src/eval.c @@ -311,6 +311,10 @@ LakeVal *apply(LakeVal *fnVal, LakeList *args) /* bind varargs */ if (fn->varargs) { + if (LIST_N(args) < nparams) { + ERR("expected at least %zu params but got %zu", nparams, LIST_N(args)); + return NULL; + } LakeList *remainingArgs = list_make_with_capacity(LIST_N(args) - nparams); for (; i < LIST_N(args); ++i) { list_append(remainingArgs, LIST_VAL(args, i));