patch 8.2.1087: possible memory leak when file expansion fails
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.
diff --git a/src/filepath.c b/src/filepath.c
index 6644e99..a1e281b 100644
--- a/src/filepath.c
+++ b/src/filepath.c
@@ -3813,8 +3813,13 @@
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;