summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLubomir Rintel <lkundrak@v3.sk>2015-08-19 10:45:01 +0200
committerLubomir Rintel <lkundrak@v3.sk>2015-08-19 15:32:21 +0200
commit450d68388143fa5a7a84804d4e750a8d3dc91eb9 (patch)
tree383c975bde582d9c99362f2953cadd04de9f989b
parent629a5396e4db7ddb8c3bdd84ea5a83fafae6af91 (diff)
downloadNetworkManager-450d68388143fa5a7a84804d4e750a8d3dc91eb9.tar.gz
nm-settings: take a reference to ourselves as long we have signals that use us hooked onlr/teardown-fixes
Program received signal SIGSEGV, Segmentation fault. g_type_check_instance_cast (type_instance=type_instance@entry=0x89f180, iface_type=9004512) at gtype.c:4060 4060 node = lookup_type_node_I (type_instance->g_class->g_type); (gdb) bt #0 0x00007ffff4b44e80 in g_type_check_instance_cast (type_instance=type_instance@entry=0x89f180, iface_type=9004512) at gtype.c:4060 #1 0x000000000056a460 in connection_visibility_changed (connection=0x89f680 [NMKeyfileConnection], pspec=<optimized out>, user_data=0x89f180) at settings/nm-settings.c:870 #5 0x00007ffff4b3b54f in <emit signal notify:visible on instance 0x89f680 [NMKeyfileConnection]> (instance=instance@entry=0x89f680, signal_id=<optimized out>, detail=<optimized out>) at gsignal.c:3393 #2 0x00007ffff4b200b5 in g_closure_invoke (closure=0x9131a0, return_value=return_value@entry=0x0, n_param_values=2, param_values=param_values@entry=0x7fffffffd540, invocation_hint=invocation_hint@entry=0x7fffffffd4c0) at gclosure.c:801 #3 0x00007ffff4b32499 in signal_emit_unlocked_R (node=node@entry=0x8696b0, detail=detail@entry=641, instance=instance@entry=0x89f680, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffd540) at gsignal.c:3581 #4 0x00007ffff4b3b1a0 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffd710) at gsignal.c:3337 #6 0x00007ffff4b24665 in g_object_dispatch_properties_changed (object=0x89f680 [NMKeyfileConnection], n_pspecs=<optimized out>, pspecs=<optimized out>) at gobject.c:1056 #7 0x00007ffff4b26d11 in g_object_notify (pspec=0x8ce660 [GParamBoolean], object=0x89f680 [NMKeyfileConnection]) at gobject.c:1149 #8 0x00007ffff4b26d11 in g_object_notify (object=0x89f680 [NMKeyfileConnection], property_name=property_name@entry=0x5d2eb9 "visible") at gobject.c:1197 #9 0x0000000000497f85 in set_visible (self=self@entry=0x89f680 [NMKeyfileConnection], new_visible=new_visible@entry=0) at settings/nm-settings-connection.c:296 #10 0x0000000000498165 in dispose (object=0x89f680 [NMKeyfileConnection]) at settings/nm-settings-connection.c:2390 #11 0x00007ffff4b24fec in g_object_unref (_object=0x89f680) at gobject.c:3137 #12 0x00000000004a4a4f in dispose (object=0xa24260 [NMVpnConnection]) at nm-active-connection.c:904 #13 0x00007ffff4b24fec in g_object_unref (_object=0xa24260) at gobject.c:3137 #14 0x0000000000577636 in nm_vpn_service_stop_connections (service=0x8ff610 [NMVpnService], quitting=1, reason=NM_VPN_CONNECTION_STATE_REASON_SERVICE_STOPPED) at vpn-manager/nm-vpn-service.c:150 #15 0x0000000000576ea2 in dispose (object=0x921060 [NMVpnManager]) at vpn-manager/nm-vpn-manager.c:284 #16 0x00007ffff4b24fec in g_object_unref (_object=0x921060) at gobject.c:3137 #17 0x00000000004d0f05 in dispose (object=0x88a2b0 [NMManager]) at nm-manager.c:5061 #18 0x00007ffff4b24fec in g_object_unref (_object=0x88a2b0) at gobject.c:3137 #19 0x0000000000444e08 in _nm_singleton_instance_destroy () at NetworkManagerUtils.c:138 #20 0x00007ffff7de97b7 in _dl_fini () at dl-fini.c:252 #21 0x00007ffff4444778 in __run_exit_handlers (status=status@entry=0, listp=0x7ffff47d0618 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true) at exit.c:82 #22 0x00007ffff44447c5 in __GI_exit (status=status@entry=0) at exit.c:104 #23 0x0000000000445b80 in main (argc=1, argv=0x7fffffffdf08) at main.c:458 (gdb)
-rw-r--r--src/settings/nm-settings.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/settings/nm-settings.c b/src/settings/nm-settings.c
index 1ee60ad2c4..afd926c53e 100644
--- a/src/settings/nm-settings.c
+++ b/src/settings/nm-settings.c
@@ -882,7 +882,6 @@ connection_removed (NMSettingsConnection *connection, gpointer user_data)
if (!g_hash_table_lookup (priv->connections, cpath))
g_return_if_reached ();
-
g_object_ref (connection);
/* Disconnect signal handlers, as plugins might still keep references
@@ -895,6 +894,7 @@ connection_removed (NMSettingsConnection *connection, gpointer user_data)
g_signal_handlers_disconnect_by_func (connection, G_CALLBACK (connection_updated_by_user), self);
g_signal_handlers_disconnect_by_func (connection, G_CALLBACK (connection_visibility_changed), self);
g_signal_handlers_disconnect_by_func (connection, G_CALLBACK (connection_ready_changed), self);
+ g_object_unref (self);
/* Forget about the connection internally */
g_hash_table_remove (priv->connections, (gpointer) cpath);
@@ -1019,6 +1019,7 @@ claim_connection (NMSettings *self, NMSettingsConnection *connection)
/* Evil openconnect migration hack */
openconnect_migrate_hack (NM_CONNECTION (connection));
+ g_object_ref (self);
g_signal_connect (connection, NM_SETTINGS_CONNECTION_REMOVED,
G_CALLBACK (connection_removed), self);
g_signal_connect (connection, NM_SETTINGS_CONNECTION_UPDATED,