From 4b9896ce9de20a83a09ccb37d884a9921d2a2529 Mon Sep 17 00:00:00 2001 From: Lidong Yan <502024330056@smail.nju.edu.cn> Date: Sun, 12 Oct 2025 15:10:09 +0000 Subject: [PATCH] patch 9.1.1852: vim9class: memory leak in parse_member() 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 --- src/version.c | 2 ++ src/vim9class.c | 1 + 2 files changed, 3 insertions(+) diff --git a/src/version.c b/src/version.c index d46906ab27..95f88fcb84 100644 --- a/src/version.c +++ b/src/version.c @@ -729,6 +729,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1852, /**/ 1851, /**/ diff --git a/src/vim9class.c b/src/vim9class.c index 09d9dffb6b..d5c3615dc9 100644 --- a/src/vim9class.c +++ b/src/vim9class.c @@ -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; }