fix: memory leak in postfix parsing function
This commit is contained in:
@@ -232,7 +232,10 @@ fzl_node_t *parse_postfix(fzl_parser_t *parser)
|
|||||||
fzl_node_t *arg = parse_expression(parser);
|
fzl_node_t *arg = parse_expression(parser);
|
||||||
if (!arg)
|
if (!arg)
|
||||||
{
|
{
|
||||||
|
for (size_t i = 0; i < args_count; i++)
|
||||||
|
fzl_freeast(args[i]);
|
||||||
free(args);
|
free(args);
|
||||||
|
fzl_freeast(left);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -252,6 +255,8 @@ fzl_node_t *parse_postfix(fzl_parser_t *parser)
|
|||||||
fzl_token_t *rparen = consume(parser);
|
fzl_token_t *rparen = consume(parser);
|
||||||
if (!rparen || rparen->type != FZL_TOKTYPE_RPAREN)
|
if (!rparen || rparen->type != FZL_TOKTYPE_RPAREN)
|
||||||
{
|
{
|
||||||
|
for (size_t i = 0; i < args_count; i++)
|
||||||
|
fzl_freeast(args[i]);
|
||||||
free(args);
|
free(args);
|
||||||
fzl_freeast(left);
|
fzl_freeast(left);
|
||||||
snprintf(plast_err, sizeof(plast_err),
|
snprintf(plast_err, sizeof(plast_err),
|
||||||
|
|||||||
Reference in New Issue
Block a user