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

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