From f60d798c5001070718407febeac42b63ddac314f Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Sat, 3 May 2003 23:20:34 +0000 Subject: 2003-05-03 Havoc Pennington * 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 --- dbus/dbus-address.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'dbus') 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; } -- cgit