* preeval_iterate(): also check the required parameters.
authorWilfried Göesgens <willi@citadel.org>
Sun, 1 Aug 2010 20:50:47 +0000 (20:50 +0000)
committerWilfried Göesgens <willi@citadel.org>
Sun, 1 Aug 2010 20:50:47 +0000 (20:50 +0000)
webcit/subst.c

index 334f4fdc2f965ead34c77fe83a215aa0ffebcaaa..9ff94c57a4941e8a6d4bd59484016f11deb2f6e9 100644 (file)
@@ -2146,6 +2146,7 @@ int preeval_iterate(WCTemplateToken *Token)
        WCTemplputParams *TP;
        void *vTmpl;
        void *vIt;
+       HashIterator *It;
 
        memset(&TPP, 0, sizeof(WCTemplputParams));
        TP = &TPP;
@@ -2169,6 +2170,16 @@ int preeval_iterate(WCTemplateToken *Token)
                                 "referenced here doesn't exist");
        }
        Token->Preeval2 = vIt;
+       It = (HashIterator *) vIt;
+
+       if (TP->Tokens->nParameters <= It->AdditionalParams + 2) {
+               LogTemplateError(                               
+                       NULL, "Iterator", ERR_PARM1, TP,
+                       "doesn't work with %d params", 
+                       TP->Tokens->nParameters - 1);
+       }
+
+
        return 1;
 }