aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/msgpack_rpc/channel.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/msgpack_rpc/channel.c')
-rw-r--r--src/nvim/msgpack_rpc/channel.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/nvim/msgpack_rpc/channel.c b/src/nvim/msgpack_rpc/channel.c
index b671b8b545..df78f822d6 100644
--- a/src/nvim/msgpack_rpc/channel.c
+++ b/src/nvim/msgpack_rpc/channel.c
@@ -464,7 +464,11 @@ static void handle_request(Channel *channel, msgpack_object *request)
}
Array args = ARRAY_DICT_INIT;
- msgpack_rpc_to_array(msgpack_rpc_args(request), &args);
+ if (!msgpack_rpc_to_array(msgpack_rpc_args(request), &args)) {
+ handler.fn = msgpack_rpc_handle_invalid_arguments;
+ handler.defer = false;
+ }
+
bool defer = (!kv_size(channel->call_stack) && handler.defer);
RequestEvent *event_data = xmalloc(sizeof(RequestEvent));
event_data->channel = channel;