From: Ralf Habacker Date: Tue, 3 Apr 2007 18:53:25 +0000 (+0000) Subject: * dbus/dbus-address.c (dbus_parse_address): Do not accept zero-length address. X-Git-Tag: dbus-1.1.0~40 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=54eabbe892f34d794daf990138480f98f84ea82f;p=thirdparty%2Fdbus.git * 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. --- diff --git a/ChangeLog b/ChangeLog index f36008b7a..bc0f782a0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2007-04-03 Timo Hoenig + + * 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 * cmake/dbus/CMakeLists.txt: debug postfix also for mingw. diff --git a/dbus/dbus-address.c b/dbus/dbus-address.c index bb2a58992..b6bb36d21 100644 --- a/dbus/dbus-address.c +++ b/dbus/dbus-address.c @@ -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