diff options
Diffstat (limited to 'dbus')
-rw-r--r-- | dbus/dbus-message.c | 4 | ||||
-rw-r--r-- | dbus/dbus-string.c | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/dbus/dbus-message.c b/dbus/dbus-message.c index eb0e86cc..06c75b06 100644 --- a/dbus/dbus-message.c +++ b/dbus/dbus-message.c @@ -1735,10 +1735,12 @@ dbus_message_iter_get_fixed_array (DBusMessageIter *iter, int *n_elements) { DBusMessageRealIter *real = (DBusMessageRealIter *)iter; + int subtype = _dbus_type_reader_get_current_type(&real->u.reader); _dbus_return_if_fail (_dbus_message_iter_check (real)); _dbus_return_if_fail (value != NULL); - _dbus_return_if_fail (dbus_type_is_fixed (_dbus_type_reader_get_current_type (&real->u.reader))); + _dbus_return_if_fail ((subtype == DBUS_TYPE_INVALID) || + dbus_type_is_fixed (subtype)); _dbus_type_reader_read_fixed_multi (&real->u.reader, value, n_elements); diff --git a/dbus/dbus-string.c b/dbus/dbus-string.c index eb5ea91b..6bd3d57b 100644 --- a/dbus/dbus-string.c +++ b/dbus/dbus-string.c @@ -232,7 +232,7 @@ _dbus_string_init_const_len (DBusString *str, DBusRealString *real; _dbus_assert (str != NULL); - _dbus_assert (value != NULL); + _dbus_assert (len == 0 || value != NULL); _dbus_assert (len <= _DBUS_STRING_MAX_MAX_LENGTH); _dbus_assert (len >= 0); |