diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | dbus/dbus-address.c | 11 |
2 files changed, 14 insertions, 3 deletions
@@ -1,3 +1,9 @@ +2003-05-03 Havoc Pennington <hp@redhat.com> + + * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in + the address had no value, and add to test suite. Fix and + regression test from Miloslav Trmac + 2003-05-03 Havoc Pennington <hp@pobox.com> * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the diff --git a/dbus/dbus-address.c b/dbus/dbus-address.c index d3099222..bf9dbc3b 100644 --- a/dbus/dbus-address.c +++ b/dbus/dbus-address.c @@ -232,8 +232,8 @@ dbus_parse_address (const char *address, if (!_dbus_string_find_to (&str, pos, end_pos, ",", &comma_pos)) comma_pos = end_pos; - if (!_dbus_string_find (&str, pos, "=", &equals_pos) || - equals_pos == pos || equals_pos + 1 == end_pos) + if (!_dbus_string_find_to (&str, pos, comma_pos, "=", &equals_pos) || + equals_pos == pos || equals_pos + 1 == comma_pos) { dbus_set_error (error, DBUS_ERROR_BAD_ADDRESS, "'=' character not found or has no value following it"); @@ -430,7 +430,12 @@ _dbus_address_test (void) _dbus_assert_not_reached ("Parsed incorrect address."); else dbus_error_free (&error); - + + if (dbus_parse_address ("foo:foo,bar=baz", &entries, &len, &error)) + _dbus_assert_not_reached ("Parsed incorrect address."); + else + dbus_error_free (&error); + return TRUE; } |