aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/msgpack_rpc/helpers.c
diff options
context:
space:
mode:
authorJames McCoy <jamessan@jamessan.com>2016-11-17 18:16:46 -0500
committerJames McCoy <jamessan@jamessan.com>2016-11-23 20:30:00 -0500
commitca292c97688e1a43f2b29594007effb8dd141636 (patch)
tree010e4342165e9a5b9bbe43f7aefc482a8f251323 /src/nvim/msgpack_rpc/helpers.c
parent38ee85d0007dced6469f4d93b46e55a49511f172 (diff)
downloadrneovim-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.c4
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 {