mirror of
https://github.com/DarkPlacesEngine/gmqcc.git
synced 2024-11-23 12:22:26 +00:00
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
This commit is contained in:
parent
6126db10df
commit
bd739528ad
1 changed files with 5 additions and 2 deletions
7
ast.c
7
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));
|
||||
|
|
Loading…
Reference in a new issue