diff src/channel.c @ 19157:f2c8bc90f3c8 v8.2.0138

patch 8.2.0138: memory leak when starting a job fails Commit: https://github.com/vim/vim/commit/538feb56e87c647d9b1cc8522f7650d263096f63 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Jan 20 21:59:39 2020 +0100 patch 8.2.0138: memory leak when starting a job fails Problem: Memory leak when starting a job fails. Solution: Free the list of arguments. (Ozaki Kiichi, closes https://github.com/vim/vim/issues/5510)
author Bram Moolenaar <Bram@vim.org>
date Mon, 20 Jan 2020 22:00:04 +0100
parents 5c405689da3e
children c9258281045d
line wrap: on
line diff
--- a/src/channel.c
+++ b/src/channel.c
@@ -5818,9 +5818,9 @@ job_start(
     char_u	*cmd = NULL;
     char	**argv = NULL;
     int		argc = 0;
+    int		i;
 #if defined(UNIX)
 # define USE_ARGV
-    int		i;
 #else
     garray_T	ga;
 #endif
@@ -5994,7 +5994,11 @@ theend:
     vim_free(ga.ga_data);
 #endif
     if (argv != job->jv_argv)
+    {
+	for (i = 0; argv[i] != NULL; i++)
+	    vim_free(argv[i]);
 	vim_free(argv);
+    }
     free_job_options(&opt);
     return job;
 }