diff options
author | James McCoy <jamessan@jamessan.com> | 2016-11-17 18:16:46 -0500 |
---|---|---|
committer | James McCoy <jamessan@jamessan.com> | 2016-11-23 20:30:00 -0500 |
commit | ca292c97688e1a43f2b29594007effb8dd141636 (patch) | |
tree | 010e4342165e9a5b9bbe43f7aefc482a8f251323 /src/nvim/msgpack_rpc/helpers.c | |
parent | 38ee85d0007dced6469f4d93b46e55a49511f172 (diff) | |
download | rneovim-ca292c97688e1a43f2b29594007effb8dd141636.tar.gz rneovim-ca292c97688e1a43f2b29594007effb8dd141636.tar.bz2 rneovim-ca292c97688e1a43f2b29594007effb8dd141636.zip |
Avoid serializing NULL string through msgpack
Attempting to serialize a NULL string through msgpack results in
msgpack_sbuffer_write attempting to memcpy from a NULL pointer, which is
undefined behavior.
Diffstat (limited to 'src/nvim/msgpack_rpc/helpers.c')
-rw-r--r-- | src/nvim/msgpack_rpc/helpers.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/nvim/msgpack_rpc/helpers.c b/src/nvim/msgpack_rpc/helpers.c index c3a909692f..b0cfe2d6cd 100644 --- a/src/nvim/msgpack_rpc/helpers.c +++ b/src/nvim/msgpack_rpc/helpers.c @@ -326,7 +326,9 @@ void msgpack_rpc_from_string(String result, msgpack_packer *res) FUNC_ATTR_NONNULL_ARG(2) { msgpack_pack_str(res, result.size); - msgpack_pack_str_body(res, result.data, result.size); + if (result.size > 0) { + msgpack_pack_str_body(res, result.data, result.size); + } } typedef struct { |