changeset 5911:81f5a056b2a5 v7.4.297

updated for version 7.4.297 Problem: Memory leak from result of get_isolated_shell_name(). Solution: Free the memory. (Dominique Pelle)
author Bram Moolenaar <bram@vim.org>
date Thu, 22 May 2014 14:00:16 +0200
parents 99724695f69f
children 9c7544dc69b2
files src/ex_cmds.c src/misc1.c src/version.c
diffstat 3 files changed, 6 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -1554,9 +1554,11 @@ make_filter_cmd(cmd, itmp, otmp)
 
 #if (defined(UNIX) && !defined(ARCHIE)) || defined(OS2)
     int		is_fish_shell;
+    char_u	*shell_name = get_isolated_shell_name();
 
     /* Account for fish's different syntax for subshells */
-    is_fish_shell = (fnamecmp(get_isolated_shell_name(), "fish") == 0);
+    is_fish_shell = (fnamecmp(shell_name, "fish") == 0);
+    vim_free(shell_name);
     if (is_fish_shell)
 	len = (long_u)STRLEN(cmd) + 13;		/* "begin; " + "; end" + NUL */
     else
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -10874,7 +10874,7 @@ goto_im()
 }
 
 /*
- * Returns the isolated name of the shell:
+ * Returns the isolated name of the shell in allocated memory:
  * - Skip beyond any path.  E.g., "/usr/bin/csh -f" -> "csh -f".
  * - Remove any argument.  E.g., "csh -f" -> "csh".
  * But don't allow a space in the path, so that this works:
--- a/src/version.c
+++ b/src/version.c
@@ -735,6 +735,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    297,
+/**/
     296,
 /**/
     295,