summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-06-29 21:14:51 +0200
committerBram Moolenaar <Bram@vim.org>2020-06-29 21:14:51 +0200
commit566cc8c72bb8036f015a435800f28ef9f6a9a3b6 (patch)
treef261542849a6c11e2b89a34b660e4966a99a8cd7
parentcf30643ae607ae1a97b50e19c622dc8303723fa2 (diff)
downloadvim-git-566cc8c72bb8036f015a435800f28ef9f6a9a3b6.tar.gz
patch 8.2.1087: possible memory leak when file expansion failsv8.2.1087
Problem: Possible memory leak when file expansion fails. Solution: Clear the grow array when returning FAIL. Use an error message instead of an empty string.
-rw-r--r--src/filepath.c7
-rw-r--r--src/version.c2
2 files changed, 8 insertions, 1 deletions
diff --git a/src/filepath.c b/src/filepath.c
index 6644e9939..a1e281b0e 100644
--- a/src/filepath.c
+++ b/src/filepath.c
@@ -3813,8 +3813,13 @@ gen_expand_wildcards(
vim_free(p);
}
+ // When returning FAIL the array must be freed here.
+ if (retval == FAIL)
+ ga_clear(&ga);
+
*num_file = ga.ga_len;
- *file = (ga.ga_data != NULL) ? (char_u **)ga.ga_data : (char_u **)"";
+ *file = (ga.ga_data != NULL) ? (char_u **)ga.ga_data
+ : (char_u **)_("no matches");
recursive = FALSE;
diff --git a/src/version.c b/src/version.c
index 6f6e4810b..f38c978b2 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1087,
+/**/
1086,
/**/
1085,