]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.1.1852: vim9class: memory leak in parse_member() v9.1.1852
authorLidong Yan <502024330056@smail.nju.edu.cn>
Sun, 12 Oct 2025 15:10:09 +0000 (15:10 +0000)
committerChristian Brabandt <cb@256bit.org>
Sun, 12 Oct 2025 15:10:09 +0000 (15:10 +0000)
Problem:  vim9class: fix memory leak in parse_member()
Solution: Free evalarg before returning (Lidong Yan)

In parse_member(), skip_expr_concatenate() allocates memory in evalarg.
However parse_member() forgets to free evalarg at early return-fail
point. Add clear_evalarg() at early return-fail point.

closes: #18533

Signed-off-by: Lidong Yan <502024330056@smail.nju.edu.cn>
Signed-off-by: Christian Brabandt <cb@256bit.org>
src/version.c
src/vim9class.c

index d46906ab276c0924cca8273660c19bc04931271c..95f88fcb849e6d8cbd5939bd570547766045f381 100644 (file)
@@ -729,6 +729,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1852,
 /**/
     1851,
 /**/
index 09d9dffb6b32929815147ed0b941ea7b03ede846..d5c3615dc95adaebf044cd761e65303d804c1684 100644 (file)
@@ -135,6 +135,7 @@ parse_member(
        if (*init_arg != NUL && !vim9_comment_start(init_arg))
        {
            semsg(_(e_trailing_characters_str), init_arg);
+           clear_evalarg(&evalarg, NULL);
            return FAIL;
        }