summaryrefslogtreecommitdiffstats
path: root/dbus
diff options
context:
space:
mode:
Diffstat (limited to 'dbus')
-rw-r--r--dbus/dbus-message.c4
-rw-r--r--dbus/dbus-string.c2
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);