Comment 7 for bug 944900

Revision history for this message
Charles Kerr (charlesk) wrote :

In our patched version of glib2.0-2.31.18, that crash occurs on the first line of g_dbus_proxy_call_internal():

> g_return_if_fail (G_IS_DBUS_PROXY (proxy));

so it looks like we're passing a broken pointer in as the proxy argument there. Following the trace back one step, this proxy pointer is the same one that libindicate/listener.c's indicator_listener_display() passes to g_dbus_proxy_call(). So it looks like the IndicateListenerServer.proxy pointer passed into that function is bad.

My guess is that priv->server.proxy isn't getting updated when the proxy is destroyed. proxy_destroyed() updates its "priv->proxies" array but does nothing for "priv->server.proxy".