aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/api/private/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/api/private/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/api/private/helpers.c')
-rw-r--r--src/nvim/api/private/helpers.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/nvim/api/private/helpers.c b/src/nvim/api/private/helpers.c
index 2a01f83688..0485fbacd2 100644
--- a/src/nvim/api/private/helpers.c
+++ b/src/nvim/api/private/helpers.c
@@ -426,8 +426,12 @@ bool object_to_vim(Object obj, typval_T *tv, Error *err)
case kObjectTypeString:
tv->v_type = VAR_STRING;
- tv->vval.v_string = xmemdupz(obj.data.string.data,
- obj.data.string.size);
+ if (obj.data.string.data == NULL) {
+ tv->vval.v_string = NULL;
+ } else {
+ tv->vval.v_string = xmemdupz(obj.data.string.data,
+ obj.data.string.size);
+ }
break;
case kObjectTypeArray: