From: Wolfgang (Blub) Bumiller Date: Mon, 29 Oct 2012 13:35:50 +0000 (+0100) Subject: ast_call_check_types should not check more parameters than actually available in... X-Git-Tag: 0.1-rc1~10 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=bd739528ad1f715cd21e5afe2f60b73a8011c3ee;p=xonotic%2Fgmqcc.git ast_call_check_types should not check more parameters than actually available in both the call and the function type - fixes a crash introduced by this on variadic functions --- diff --git a/ast.c b/ast.c index d8ca8bd..5ec1d3a 100644 --- a/ast.c +++ b/ast.c @@ -674,9 +674,12 @@ bool ast_call_check_types(ast_call *self) { size_t i; bool retval = true; - const ast_expression *func = self->func; + const ast_expression *func = self->func; + size_t count = self->params_count; + if (count > func->expression.params_count) + count = func->expression.params_count; - for (i = 0; i < self->params_count; ++i) { + for (i = 0; i < count; ++i) { if (!ast_compare_type(self->params[i], (ast_expression*)(func->expression.params[i]))) { asterror(ast_ctx(self), "invalid type for parameter %u in function call", (unsigned int)(i+1));