aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/msgpack_rpc/helpers.c
diff options
context:
space:
mode:
authorFlorian Walch <florian@fwalch.com>2015-06-16 19:56:51 +0300
committerFlorian Walch <florian@fwalch.com>2015-06-30 18:36:41 +0300
commitbfadf5a28b550bf99101c17244d5ea1b926e40c3 (patch)
tree87f69db54729fd317ac516dec0091a54f24f4267 /src/nvim/msgpack_rpc/helpers.c
parentfa13cc61ced0ea5ecbebee9d95adcde5540b9e54 (diff)
downloadrneovim-bfadf5a28b550bf99101c17244d5ea1b926e40c3.tar.gz
rneovim-bfadf5a28b550bf99101c17244d5ea1b926e40c3.tar.bz2
rneovim-bfadf5a28b550bf99101c17244d5ea1b926e40c3.zip
ASan: Fix "null pointer passed for argument declared to never be null". #2925
Arguments passed to xmemdupz() are sometimes NULL, but xmemdupz() has FUNC_ATTR_NONNULL_ALL. Check pointers for NULL before calling xmemdupz(). Resolves #2533.
Diffstat (limited to 'src/nvim/msgpack_rpc/helpers.c')
-rw-r--r--src/nvim/msgpack_rpc/helpers.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/nvim/msgpack_rpc/helpers.c b/src/nvim/msgpack_rpc/helpers.c
index acfd3fe94f..473958c765 100644
--- a/src/nvim/msgpack_rpc/helpers.c
+++ b/src/nvim/msgpack_rpc/helpers.c
@@ -94,13 +94,14 @@ bool msgpack_rpc_to_string(msgpack_object *obj, String *arg)
FUNC_ATTR_NONNULL_ALL
{
if (obj->type == MSGPACK_OBJECT_BIN || obj->type == MSGPACK_OBJECT_STR) {
+ if (obj->via.bin.ptr == NULL) {
+ return false;
+ }
arg->data = xmemdupz(obj->via.bin.ptr, obj->via.bin.size);
arg->size = obj->via.bin.size;
- } else {
- return false;
+ return true;
}
-
- return true;
+ return false;
}
bool msgpack_rpc_to_object(msgpack_object *obj, Object *arg)