From: Bram Moolenaar Date: Tue, 28 Dec 2021 20:18:50 +0000 (+0000) Subject: patch 8.2.3927: Vim9: double free when using lambda X-Git-Tag: v8.2.3927 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=8c697e3698e7dbe0a3c4524ac360b78ceb852b23;p=thirdparty%2Fvim.git patch 8.2.3927: Vim9: double free when using lambda Problem: Vim9: double free when using lambda. Solution: Don't free both cmdline and line_to_free. --- diff --git a/src/userfunc.c b/src/userfunc.c index b87cdedb68..c894c5896e 100644 --- a/src/userfunc.c +++ b/src/userfunc.c @@ -1146,7 +1146,8 @@ lambda_function_body( ga_init2(&newlines, (int)sizeof(char_u *), 10); if (get_function_body(&eap, &newlines, NULL, &line_to_free) == FAIL) { - vim_free(cmdline); + if (cmdline != line_to_free) + vim_free(cmdline); goto erret; } diff --git a/src/version.c b/src/version.c index e091971833..4d8110510a 100644 --- a/src/version.c +++ b/src/version.c @@ -749,6 +749,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 3927, /**/ 3926, /**/