g_return_val_if_fail (string != NULL, FALSE);
a = g_strsplit (string, ";", 0);
+ if (a[0] == NULL)
+ goto out;
+
for (n = 0; a[n] != NULL; n++)
{
if (!_g_dbus_address_parse_entry (a[n],
last_error = NULL;
addr_array = g_strsplit (address, ";", 0);
- last_error = NULL;
+ if (addr_array[0] == NULL)
+ {
+ last_error = g_error_new_literal (G_IO_ERROR,
+ G_IO_ERROR_INVALID_ARGUMENT,
+ _("The given address is empty"));
+ goto out;
+ }
+
for (n = 0; addr_array != NULL && addr_array[n] != NULL; n++)
{
const gchar *addr = addr_array[n];
GError *this_error;
+
this_error = NULL;
ret = g_dbus_address_try_connect_one (addr,
out_guid,
/* ---------------------------------------------------------------------------------------------------- */
+static void
+test_empty_address (void)
+{
+ GError *error;
+ error = NULL;
+ g_dbus_address_get_stream_sync ("",
+ NULL,
+ NULL,
+ &error);
+ g_assert_error (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT);
+ g_error_free (error);
+}
+
#ifdef G_OS_UNIX
static void
test_unix_address (void)
g_type_init ();
g_test_init (&argc, &argv, NULL);
+ g_test_add_func ("/gdbus/empty-address", test_empty_address);
#ifdef G_OS_UNIX
g_test_add_func ("/gdbus/unix-address", test_unix_address);
#endif