diff options
author | Kristian Høgsberg <krh@redhat.com> | 2004-05-23 18:09:46 +0000 |
---|---|---|
committer | Kristian Høgsberg <krh@redhat.com> | 2004-05-23 18:09:46 +0000 |
commit | 14d9ef5be9667e3c1ed8447146d38d40b7ddaa62 (patch) | |
tree | 9580eb26efdfe6f44fbd05cfa190d2f0853ce90f | |
parent | e431887e8476b1897f3eef4a90bfb928abb2f07b (diff) |
Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
* dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
operands to && so we call dbus_message_iter_next () for the last
argument also.
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | dbus/dbus-message.c | 9 |
2 files changed, 11 insertions, 6 deletions
@@ -1,3 +1,11 @@ +2004-05-23 Kristian Høgsberg <krh@redhat.com> + + Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614): + + * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap + operands to && so we call dbus_message_iter_next () for the last + argument also. + 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net> * dbus/dbus-object-tree.c diff --git a/dbus/dbus-message.c b/dbus/dbus-message.c index 03a3822a..98c0d1d1 100644 --- a/dbus/dbus-message.c +++ b/dbus/dbus-message.c @@ -2180,7 +2180,7 @@ dbus_message_iter_get_args_valist (DBusMessageIter *iter, spec_type = first_arg_type; i = 0; - while (spec_type != 0) + while (spec_type != DBUS_TYPE_INVALID) { msg_type = dbus_message_iter_get_arg_type (iter); @@ -2379,9 +2379,9 @@ dbus_message_iter_get_args_valist (DBusMessageIter *iter, _dbus_warn ("Unknown field type %d\n", spec_type); goto out; } - + spec_type = va_arg (var_args, int); - if (spec_type != 0 && !dbus_message_iter_next (iter)) + if (!dbus_message_iter_next (iter) && spec_type != DBUS_TYPE_INVALID) { dbus_set_error (error, DBUS_ERROR_INVALID_ARGS, "Message has only %d arguments, but more were expected", i); @@ -7000,9 +7000,6 @@ verify_test_message (DBusMessage *message) _dbus_assert_not_reached ("bool array had wrong values"); dbus_free (our_boolean_array); - - if (!dbus_message_iter_next (&iter)) - _dbus_assert_not_reached ("Reached end of arguments"); if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_DICT) _dbus_assert_not_reached ("not dict type"); |