23 lines
845 B
Diff
23 lines
845 B
Diff
diff --git a/dbus/dbus-gproxy.c b/dbus/dbus-gproxy.c
|
|
index 36d55f8..949a0a0 100644
|
|
--- a/dbus/dbus-gproxy.c
|
|
+++ b/dbus/dbus-gproxy.c
|
|
@@ -658,8 +658,15 @@ unassociate_proxies (gpointer key, gpointer val, gpointer user_data)
|
|
{
|
|
if (!priv->for_owner)
|
|
{
|
|
- g_assert (priv->associated);
|
|
- g_assert (priv->name_call == NULL);
|
|
+ /* If a service appeared and then vanished very quickly,
|
|
+ * it's conceivable we have an inflight request for
|
|
+ * GetNameOwner here. Cancel it.
|
|
+ * https://bugs.freedesktop.org/show_bug.cgi?id=18573
|
|
+ */
|
|
+ if (priv->name_call)
|
|
+ dbus_g_proxy_cancel_call (manager->bus_proxy, priv->name_call);
|
|
+
|
|
+ priv->name_call = NULL;
|
|
|
|
priv->associated = FALSE;
|
|
manager->unassociated_proxies = g_slist_prepend (manager->unassociated_proxies, proxy);
|