Otherwise if something else holds a reference to info->mm_modem, we
could end up triggering signal handlers after we've disposed of
'info'.
---
 src/applet-device-broadband.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/applet-device-broadband.c b/src/applet-device-broadband.c
index 6790993..4e9f205 100644
--- a/src/applet-device-broadband.c
+++ b/src/applet-device-broadband.c
@@ -948,16 +948,18 @@ broadband_device_info_free (BroadbandDeviceInfo *info)
 
        g_free (info->operator_name);
        if (info->mpd)
                g_object_unref (info->mpd);
 
        if (info->mm_sim)
                g_object_unref (info->mm_sim);
-       if (info->mm_modem)
+       if (info->mm_modem) {
+               g_signal_handlers_disconnect_matched (info->mm_modem, 
G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, info);
                g_object_unref (info->mm_modem);
+       }
        if (info->mm_object)
                g_object_unref (info->mm_object);
 
        if (info->dialog)
                unlock_dialog_destroy (info);
        g_object_unref (info->cancellable);
 
-- 
1.9.0


_______________________________________________
networkmanager-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/networkmanager-list

Reply via email to