comparison 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
comparison
equal deleted inserted replaced
19156:5ad73bc6f845 19157:f2c8bc90f3c8
5816 { 5816 {
5817 job_T *job; 5817 job_T *job;
5818 char_u *cmd = NULL; 5818 char_u *cmd = NULL;
5819 char **argv = NULL; 5819 char **argv = NULL;
5820 int argc = 0; 5820 int argc = 0;
5821 int i;
5821 #if defined(UNIX) 5822 #if defined(UNIX)
5822 # define USE_ARGV 5823 # define USE_ARGV
5823 int i;
5824 #else 5824 #else
5825 garray_T ga; 5825 garray_T ga;
5826 #endif 5826 #endif
5827 jobopt_T opt; 5827 jobopt_T opt;
5828 ch_part_T part; 5828 ch_part_T part;
5992 theend: 5992 theend:
5993 #ifndef USE_ARGV 5993 #ifndef USE_ARGV
5994 vim_free(ga.ga_data); 5994 vim_free(ga.ga_data);
5995 #endif 5995 #endif
5996 if (argv != job->jv_argv) 5996 if (argv != job->jv_argv)
5997 {
5998 for (i = 0; argv[i] != NULL; i++)
5999 vim_free(argv[i]);
5997 vim_free(argv); 6000 vim_free(argv);
6001 }
5998 free_job_options(&opt); 6002 free_job_options(&opt);
5999 return job; 6003 return job;
6000 } 6004 }
6001 6005
6002 /* 6006 /*