]> git.tue.mpg.de Git - paraslash.git/commitdiff
Fix memory leak in mood parser.
authorAndre Noll <maan@tuebingen.mpg.de>
Mon, 17 Mar 2025 20:43:15 +0000 (21:43 +0100)
committerAndre Noll <maan@tuebingen.mpg.de>
Wed, 19 Mar 2025 16:02:47 +0000 (17:02 +0100)
If a mood definition contains an invalid regular expression, we leak
one ast node structure per yyparse() call.

yy/mp.lex

index 4a53db2741754bf6359733af8b42ca60ca255e92..27e968bf17cfa1882e6ad369f8a240838afa1af0 100644 (file)
--- a/yy/mp.lex
+++ b/yy/mp.lex
@@ -118,6 +118,7 @@ false {return FALSE;}
        yylval->node = mp_new_ast_leaf_node(REGEX_PATTERN);
        ret = mp_parse_regex_pattern(yytext, &yylval->node->sv.re_pattern);
        if (ret < 0) {
+               free(yylval->node);
                mp_parse_error(yylloc->first_line, ctx, "%s: %s", yytext,
                        para_strerror(-ret));
                return -E_MOOD_PARSE;