]> git.ipfire.org Git - thirdparty/dbus.git/commitdiff
* dbus/dbus-address.c (dbus_parse_address): Do not accept zero-length address.
authorRalf Habacker <ralf.habacker@freenet.de>
Tue, 3 Apr 2007 18:53:25 +0000 (18:53 +0000)
committerRalf Habacker <ralf.habacker@freenet.de>
Tue, 3 Apr 2007 18:53:25 +0000 (18:53 +0000)
* dbus/dbus-address.c (_dbus_address_test): Add test for zero-length address.

ChangeLog
dbus/dbus-address.c

index f36008b7ad423724c1847a789386f5779853acb3..bc0f782a0733f8e74a2a255856e7c96a1b3b9ca1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2007-04-03  Timo Hoenig  <thoenig@suse.de>
+
+       * dbus/dbus-address.c (dbus_parse_address): Do not accept zero-
+         length address.
+       * dbus/dbus-address.c (_dbus_address_test): Add test for zero-
+         length address.
+
 2007-03-25 Ralf.Habacker  <ralf.habacker@freenet.de>
 
        * cmake/dbus/CMakeLists.txt: debug postfix also for mingw.
index bb2a58992df51e8b7878e64f5977807187a20246..b6bb36d21ff2d985caac00d2701dc7ca3a959199 100644 (file)
@@ -376,6 +376,13 @@ dbus_parse_address (const char         *address,
   entries = NULL;
   pos = 0;
   len = _dbus_string_get_length (&str);
+
+  if (len == 0)
+  {
+    dbus_set_error (error, DBUS_ERROR_BAD_ADDRESS,
+                    "Empty address '%s'", address);
+    goto error;
+  }
   
   while (pos < len)
     {
@@ -768,6 +775,11 @@ _dbus_address_test (void)
   dbus_address_entries_free (entries);
 
   /* Different possible errors */
+  if (dbus_parse_address ("", &entries, &len, &error))
+    _dbus_assert_not_reached ("Parsed incorrect address.");
+  else
+    dbus_error_free (&error);
+
   if (dbus_parse_address ("foo", &entries, &len, &error))
     _dbus_assert_not_reached ("Parsed incorrect address.");
   else