diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2018-08-29 10:06:35 +0200 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2018-09-05 08:04:15 +0200 |
commit | db17d2c0fa2f82edc486ec7954e174404a115036 (patch) | |
tree | a41fb16189a0f17b591e694eca4482452828e471 /src/nvim/api/private/dispatch.c | |
parent | 9fe8e3cb2f357ea38d53b5d83b3ea0ebf98be58a (diff) | |
download | rneovim-db17d2c0fa2f82edc486ec7954e174404a115036.tar.gz rneovim-db17d2c0fa2f82edc486ec7954e174404a115036.tar.bz2 rneovim-db17d2c0fa2f82edc486ec7954e174404a115036.zip |
API: Avoid overrun when formatting error-message
msgpack_rpc_to_object (called by handle_request .. msgpack_rpc_to_array)
always NUL-terminates API Strings.
But handle_request .. msgpack_rpc_get_handler_for operates on a raw
msgpack_object, before preparation.
Diffstat (limited to 'src/nvim/api/private/dispatch.c')
-rw-r--r-- | src/nvim/api/private/dispatch.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/nvim/api/private/dispatch.c b/src/nvim/api/private/dispatch.c index dec2b6c185..c08225bbfc 100644 --- a/src/nvim/api/private/dispatch.c +++ b/src/nvim/api/private/dispatch.c @@ -40,7 +40,8 @@ MsgpackRpcRequestHandler msgpack_rpc_get_handler_for(const char *name, map_get(String, MsgpackRpcRequestHandler)(methods, m); if (!rv.fn) { - api_set_error(error, kErrorTypeException, "Invalid method: %s", + api_set_error(error, kErrorTypeException, "Invalid method: %.*s", + m.size > 0 ? m.size : sizeof("<empty>"), m.size > 0 ? m.data : "<empty>"); } return rv; |