mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-02-05 11:10:31 +01:00
libnm-glib: disconnect the connectivity check cancellable signal after the call has ended (bgo #733915)
We cannot rely on connectivity data freeing to disconnect the signal, because the simple async result might be kept alive by external code (for example the language runtime for JS), but we must not call dbus_g_proxy_cancel_call() if that cancellable is cancelled or reused afterwards. https://bugzilla.gnome.org/show_bug.cgi?id=733915
This commit is contained in:
parent
c720d560b1
commit
c4e325f8dd
1 changed files with 5 additions and 0 deletions
|
|
@ -1483,6 +1483,11 @@ check_connectivity_cb (DBusGProxy *proxy,
|
|||
CheckConnectivityData *ccd = g_simple_async_result_get_op_res_gpointer (simple);
|
||||
GError *error = NULL;
|
||||
|
||||
if (ccd->cancellable) {
|
||||
g_signal_handler_disconnect (ccd->cancellable, ccd->cancelled_id);
|
||||
ccd->cancelled_id = 0;
|
||||
}
|
||||
|
||||
if (!dbus_g_proxy_end_call (proxy, call, &error,
|
||||
G_TYPE_UINT, &ccd->connectivity,
|
||||
G_TYPE_INVALID))
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue