QmlJS: Fix crash

Fixes: QTCREATORBUG-24477
Change-Id: I45ab28fd11d8c9e51fb3b537a677620ecee5985b
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@qt.io>
This commit is contained in:
Christian Kandeler
2020-08-13 15:04:38 +02:00
parent bd6161e2b2
commit b19c5969d8

View File

@@ -198,12 +198,15 @@ protected:
} else {
return false;
}
int argCount = 0;
for (const ExpressionListAST *list = ast->expression_list; list && list->value;
list = list->next) {
++argCount;
}
// must have at least four arguments
if (!ast->expression_list
|| !ast->expression_list->value || !ast->expression_list->next
|| !ast->expression_list->next->value || !ast->expression_list->next->next
|| !ast->expression_list->next->next->value || !ast->expression_list->next->next->next
|| !ast->expression_list->next->next->next->value)
if (argCount < 4)
return false;
switch (registrationFunction) {
case InvalidRegistrationFunction:
@@ -215,15 +218,11 @@ protected:
case QmlRegisterSingletonTypeCallback2:
case QmlRegisterSingletonTypeUrl:
case QmlRegisterUncreatableType:
if (!ast->expression_list->next->next->next->next
|| !ast->expression_list->next->next->next->next->value
|| ast->expression_list->next->next->next->next->next)
if (argCount != 5)
return false;
break;
case QmlRegisterUncreatableMetaObject:
if (!ast->expression_list->next->next->next->next->next
|| !ast->expression_list->next->next->next->next->next->value
|| ast->expression_list->next->next->next->next->next->next)
if (argCount != 6)
return false;
}
ExpressionAST *uriExp = nullptr;