diff options
author | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2009-07-09 09:53:14 +0100 |
---|---|---|
committer | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2009-07-09 19:16:39 +0100 |
commit | 03844c40179f2591398d524080d862c9b0298865 (patch) | |
tree | c68b2f311863c28e0f7893e51df9e70250da7904 /telepathy-glib/proxy-methods.c | |
parent | 8221de6ae9808a17fabdf41522d3aac5996d777a (diff) | |
download | telepathy-glib-03844c40179f2591398d524080d862c9b0298865.tar.gz |
TpProxyPendingCall: fix rare crash when cancelled before we've been given our DBusGProxyCall
One of the telepathy-mission-control regression tests hit an assertion
failure in dbus_g_proxy_cancel_call (., call=0x0), with
tp_proxy_pending_call_lost_weak_ref on the stack. As far as I can tell,
this can only happen if the weak_object is finalized before
tp_proxy_pending_call_v0_take_pending_call is called, which seems unlikely
but possible.
Reviewed-by: Will Thompson <will.thompson@collabora.co.uk>
Diffstat (limited to 'telepathy-glib/proxy-methods.c')
-rw-r--r-- | telepathy-glib/proxy-methods.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/telepathy-glib/proxy-methods.c b/telepathy-glib/proxy-methods.c index 58d8bfb04..011dcd8de 100644 --- a/telepathy-glib/proxy-methods.c +++ b/telepathy-glib/proxy-methods.c @@ -332,7 +332,7 @@ tp_proxy_pending_call_cancel (TpProxyPendingCall *pc) _tp_proxy_pending_call_idle_completed); } - if (!pc->dbus_completed) + if (!pc->dbus_completed && pc->pending_call != NULL) { /* Implicitly asserts that iface_proxy is non-NULL */ DBusGProxy *iface_proxy = g_object_ref (pc->iface_proxy); |