Mercurial > vim
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 /* |