patch 9.1.1218: missing out-of-memory check in filepath.c
Problem: missing out-of-memory check in filepath.c
Solution: Add check for NULL (John Marriott)
closes: #16906
Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/src/filepath.c b/src/filepath.c
index 080a58e..15f770f 100644
--- a/src/filepath.c
+++ b/src/filepath.c
@@ -105,7 +105,9 @@
char_u **bufp,
size_t *fnamelen)
{
- char_u *short_fname, *save_fname, *pbuf_unused;
+ char_u *save_fname;
+ char_u *pbuf_unused = NULL;
+ char_u *short_fname = NULL;
char_u *endp, *save_endp;
char_u ch;
size_t old_len;
@@ -116,8 +118,11 @@
// Make a copy
old_len = *fnamelen;
save_fname = vim_strnsave(*fname, old_len);
- pbuf_unused = NULL;
- short_fname = NULL;
+ if (save_fname == NULL)
+ {
+ retval = FAIL;
+ goto theend;
+ }
endp = save_fname + old_len - 1; // Find the end of the copy
save_endp = endp;
@@ -233,6 +238,8 @@
pbuf = tfname = expand_env_save(*fnamep);
else
pbuf = tfname = FullName_save(*fnamep, FALSE);
+ if (tfname == NULL)
+ return FAIL;
len = tflen = STRLEN(tfname);
diff --git a/src/version.c b/src/version.c
index e8d5523..2f28686 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1218,
+/**/
1217,
/**/
1216,