aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/event/process.c
diff options
context:
space:
mode:
authorThiago de Arruda <tpadilha84@gmail.com>2015-08-21 09:07:06 -0300
committerThiago de Arruda <tpadilha84@gmail.com>2015-08-21 13:28:49 -0300
commit1beee0685d33adf15457927b2487e8f89da178a0 (patch)
tree38f251f3333a0e103391d78d9adfc076399ca8cf /src/nvim/event/process.c
parent6e59b7b0e5cfe84db8629c728b942a5fea6bdda3 (diff)
downloadrneovim-1beee0685d33adf15457927b2487e8f89da178a0.tar.gz
rneovim-1beee0685d33adf15457927b2487e8f89da178a0.tar.bz2
rneovim-1beee0685d33adf15457927b2487e8f89da178a0.zip
eval: Protect job callbacks from being redefined
ref: #3188
Diffstat (limited to 'src/nvim/event/process.c')
-rw-r--r--src/nvim/event/process.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/nvim/event/process.c b/src/nvim/event/process.c
index 81d4e690c3..bacbf4f8c7 100644
--- a/src/nvim/event/process.c
+++ b/src/nvim/event/process.c
@@ -66,7 +66,12 @@ bool process_spawn(Process *proc) FUNC_ATTR_NONNULL_ALL
if (proc->err) {
uv_close((uv_handle_t *)&proc->err->uv.pipe, NULL);
}
- process_close(proc);
+
+ if (proc->type == kProcessTypeUv) {
+ uv_close((uv_handle_t *)&(((UvProcess *)proc)->uv), NULL);
+ } else {
+ process_close(proc);
+ }
shell_free_argv(proc->argv);
proc->status = -1;
return false;