fix(rpc): don't free args on error in rpc_send_event

fixup #21631
fixes #21690
This commit is contained in:
bfredl 2023-01-09 13:26:18 +01:00
parent fc2cd28547
commit bb7033a033
2 changed files with 2 additions and 3 deletions

View File

@ -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, bool ok = rpc_send_event((uint64_t)argvars[0].vval.v_number,
tv_get_string(&argvars[1]), args); tv_get_string(&argvars[1]), args);
api_free_array(args);
if (!ok) { if (!ok) {
semsg(_(e_invarg2), "Channel doesn't exist"); semsg(_(e_invarg2), "Channel doesn't exist");
return; return;
} }
api_free_array(args);
rettv->vval.v_number = 1; rettv->vval.v_number = 1;
} }

View File

@ -100,7 +100,6 @@ bool rpc_send_event(uint64_t id, const char *name, Array args)
Channel *channel = NULL; Channel *channel = NULL;
if (id && (!(channel = find_rpc_channel(id)))) { if (id && (!(channel = find_rpc_channel(id)))) {
api_free_array(args);
return false; return false;
} }