From 86e42ad123de0f2065172e2c92202e4226044ecc Mon Sep 17 00:00:00 2001 From: "Wolfgang (Blub) Bumiller" Date: Sun, 11 Nov 2012 14:08:02 +0100 Subject: [PATCH] Don't allow arrays and other unsupported parameter types to be used in parameter lists --- parser.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/parser.c b/parser.c index 1b2b691..fbc0967 100644 --- a/parser.c +++ b/parser.c @@ -2239,8 +2239,16 @@ static ast_value *parse_parameter_list(parser_t *parser, ast_value *var) param = parse_typename(parser, NULL); if (!param) goto on_error; - if (!paramlist_t_p_add(¶ms, param)) + if (!paramlist_t_p_add(¶ms, param)) { + ast_delete(param); goto on_error; + } + if (param->expression.vtype >= TYPE_VARIANT) { + char typename[1024]; + ast_type_to_string((ast_expression*)param, typename, sizeof(typename)); + parseerror(parser, "type not supported as part of a parameter list: %s", typename); + goto on_error; + } } } -- 2.39.2