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.
This commit is contained in:
Florian Walch
2015-06-16 19:56:51 +03:00
parent fa13cc61ce
commit bfadf5a28b
2 changed files with 11 additions and 6 deletions

View File

@@ -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: