From b62e101c7e93430b1a9ede5dc8c8feb05f30b715 Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Thu, 3 Mar 2011 16:30:00 +0000 Subject: [PATCH 4/4] dbus_message_iter_append_fixed_array: add a check for valid booleans The reasoning is the same as for dbus_message_iter_append_basic. --- dbus/dbus-message.c | 13 +++++++++++++ 1 files changed, 13 insertions(+), 0 deletions(-) diff --git a/dbus/dbus-message.c b/dbus/dbus-message.c index a8378e3..075ff31 100644 --- a/dbus/dbus-message.c +++ b/dbus/dbus-message.c @@ -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; -- 1.7.4.1