mirror of
https://github.com/neovim/neovim.git
synced 2025-09-30 15:08:35 +00:00
rpc: don't handle stale requests on already closed channel
This commit is contained in:
@@ -377,6 +377,10 @@ static void request_event(void **argv)
|
||||
Channel *channel = e->channel;
|
||||
MsgpackRpcRequestHandler handler = e->handler;
|
||||
Error error = ERROR_INIT;
|
||||
if (channel->rpc.closed) {
|
||||
// channel was closed, abort any pending requests
|
||||
goto free_ret;
|
||||
}
|
||||
Object result = handler.fn(channel->id, e->args, &error);
|
||||
if (e->type == kMessageTypeRequest || ERROR_SET(&error)) {
|
||||
// Send the response.
|
||||
@@ -391,6 +395,8 @@ static void request_event(void **argv)
|
||||
} else {
|
||||
api_free_object(result);
|
||||
}
|
||||
|
||||
free_ret:
|
||||
api_free_array(e->args);
|
||||
channel_decref(channel);
|
||||
xfree(e);
|
||||
|
Reference in New Issue
Block a user