patch 8.2.0089: crash when running out of memory in :setfiletype completion
Problem: Crash when running out of memory in :setfiletype completion.
Solution: Do not allocate memory. (Dominique Pelle, closes #5438)
diff --git a/src/cmdexpand.c b/src/cmdexpand.c
index d788e27..210b5f9 100644
--- a/src/cmdexpand.c
+++ b/src/cmdexpand.c
@@ -2633,16 +2633,13 @@
ExpandEscape(&xpc, buf, num_p, p, WILD_SILENT|expand_options);
if (ga_grow(ga, num_p) == OK)
- {
+ // take over the pointers and put them in "ga"
for (i = 0; i < num_p; ++i)
{
- ((char_u **)ga->ga_data)[ga->ga_len] =
- vim_strnsave(p[i], (int)STRLEN(p[i]));
+ ((char_u **)ga->ga_data)[ga->ga_len] = p[i];
++ga->ga_len;
}
- }
-
- FreeWild(num_p, p);
+ vim_free(p);
}
}
}