aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoroni-link <knil.ino@gmail.com>2014-07-23 13:52:15 +0200
committeroni-link <knil.ino@gmail.com>2014-07-23 15:15:21 +0200
commite9e4cdb3d4d0709a7b7cff5a0ebc30b70c05fd6b (patch)
tree2aebc5849c042ea18a0c3656dc770f1d98d08dce
parentbb1f08f6e8a017c4a1361ed838b0a54e742385c2 (diff)
downloadrneovim-e9e4cdb3d4d0709a7b7cff5a0ebc30b70c05fd6b.tar.gz
rneovim-e9e4cdb3d4d0709a7b7cff5a0ebc30b70c05fd6b.tar.bz2
rneovim-e9e4cdb3d4d0709a7b7cff5a0ebc30b70c05fd6b.zip
Fix memory leaks for jobs.
Free the data memory of process and pipe handles in the close callback for a job.
-rw-r--r--src/nvim/os/job.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/nvim/os/job.c b/src/nvim/os/job.c
index 203aa2c990..5c45c3727e 100644
--- a/src/nvim/os/job.c
+++ b/src/nvim/os/job.c
@@ -402,6 +402,14 @@ static void close_cb(uv_handle_t *handle)
rstream_free(job->out);
rstream_free(job->err);
wstream_free(job->in);
+
+ // Free data memory of process and pipe handles, that was allocated
+ // by handle_set_job in job_start.
+ free(job->proc.data);
+ free(job->proc_stdin.data);
+ free(job->proc_stdout.data);
+ free(job->proc_stderr.data);
+
shell_free_argv(job->proc_opts.args);
free(job);
}