]> git.ipfire.org Git - thirdparty/dbus.git/commitdiff
dbus_message_iter_append_fixed_array: add a check for valid booleans
authorSimon McVittie <simon.mcvittie@collabora.co.uk>
Thu, 3 Mar 2011 16:30:00 +0000 (16:30 +0000)
committerSimon McVittie <simon.mcvittie@collabora.co.uk>
Fri, 4 Mar 2011 12:40:40 +0000 (12:40 +0000)
The reasoning is the same as for dbus_message_iter_append_basic.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=16338
Reviewed-by: Cosimo Alfarano <cosimo.alfarano@collabora.co.uk>
dbus/dbus-message.c

index a8378e30a139560003e7ad16509d10c38a52adbd..075ff311e0f5418d9ffc10147946d1d204c45d95 100644 (file)
@@ -2660,6 +2660,19 @@ dbus_message_iter_append_fixed_array (DBusMessageIter *iter,
                             DBUS_MAXIMUM_ARRAY_LENGTH / _dbus_type_get_alignment (element_type),
                             FALSE);
 
+#ifndef DBUS_DISABLE_CHECKS
+  if (element_type == DBUS_TYPE_BOOLEAN)
+    {
+      const dbus_bool_t * const *bools = value;
+      int i;
+
+      for (i = 0; i < n_elements; i++)
+        {
+          _dbus_return_val_if_fail ((*bools)[i] == 0 || (*bools)[i] == 1, FALSE);
+        }
+    }
+#endif
+
   ret = _dbus_type_writer_write_fixed_multi (&real->u.writer, element_type, value, n_elements);
 
   return ret;