commit 9cd7edc6ad884f59b0be9dda3523ff88f4dca705
parent 149209400383c673fdb4fdd1c9a7639139f17936
Author: bfredl <bjorn.linse@gmail.com>
Date: Mon, 9 Jan 2023 14:52:02 +0100
Merge pull request #21704 from bfredl/nofree
fix(rpc): don't free args on error in rpc_send_event
Diffstat:
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/src/nvim/eval/funcs.c b/src/nvim/eval/funcs.c
@@ -6325,12 +6325,12 @@ static void f_rpcnotify(typval_T *argvars, typval_T *rettv, EvalFuncData fptr)
bool ok = rpc_send_event((uint64_t)argvars[0].vval.v_number,
tv_get_string(&argvars[1]), args);
+ api_free_array(args);
+
if (!ok) {
semsg(_(e_invarg2), "Channel doesn't exist");
return;
}
-
- api_free_array(args);
rettv->vval.v_number = 1;
}
diff --git a/src/nvim/msgpack_rpc/channel.c b/src/nvim/msgpack_rpc/channel.c
@@ -100,7 +100,6 @@ bool rpc_send_event(uint64_t id, const char *name, Array args)
Channel *channel = NULL;
if (id && (!(channel = find_rpc_channel(id)))) {
- api_free_array(args);
return false;
}