]> git.ipfire.org Git - thirdparty/dbus.git/commitdiff
2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
authorOlivier Andrieu <oliv__a@users.sourceforge.net>
Fri, 12 Mar 2004 14:18:35 +0000 (14:18 +0000)
committerOlivier Andrieu <oliv__a@users.sourceforge.net>
Fri, 12 Mar 2004 14:18:35 +0000 (14:18 +0000)
* dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
fix a bug with CUSTOM types.

* dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
a unit test for this bug (used to fail).

ChangeLog
dbus/dbus-marshal.c
dbus/dbus-message.c

index e3317afc6df214b36110f87d3539edb168aa0081..b74774adfc8ee40e961f830120051900fb49953c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
+
+       * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
+       fix a bug with CUSTOM types.
+
+       * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
+       a unit test for this bug (used to fail).
+
 2004-03-12  Mikael Hallendal  <micke@imendio.com>
 
        * bus/activation.c:
index 9f92f91bc23e0a443a902110d7ffcc9a11fe7b9b..e19e36bbefc3401e629f52c5f69406d58e05ccb7 100644 (file)
@@ -1649,7 +1649,7 @@ _dbus_marshal_get_arg_end_pos (const DBusString *str,
        /* Demarshal the string length */
        len = _dbus_demarshal_uint32 (str, byte_order, pos, &pos);
 
-       *end_pos = pos + len + 1;
+       pos += len + 1;
        
        /* Demarshal the data length */
        len = _dbus_demarshal_uint32 (str, byte_order, pos, &pos);
index 1c7ebf245ba079c5aa801df9b678e334ffdefe78..ffaef43c58af244cf85a89288273ecec5f2890e2 100644 (file)
@@ -6003,6 +6003,12 @@ message_iter_test (DBusMessage *message)
   dbus_free (str);
   dbus_free (data);
   
+  if (!dbus_message_iter_next (&iter))
+    _dbus_assert_not_reached ("Reached end of arguments");
+
+  if (dbus_message_iter_get_byte (&iter) != 0xF0)
+    _dbus_assert_not_reached ("wrong value after custom");
+
   if (dbus_message_iter_next (&iter))
     _dbus_assert_not_reached ("Didn't reach end of arguments");
 }
@@ -7140,6 +7146,8 @@ _dbus_message_test (const char *test_data_dir)
   dbus_message_iter_append_custom (&iter, "MyTypeName",
                                    "data", 5);
   
+  dbus_message_iter_append_byte (&iter, 0xF0);
+
   message_iter_test (message);
   
   /* Message loader test */