NetworkManager/libnm
Iain Lane b18896f770 {vpn,remote}-connection: disconnect signal handlers when disposed
GNOME Settings 3.26 is crashing every time a VPN connection changed its
state. After some digging, a debug message was put on dispose, and this
issue was found:

libnm-Message: Object 0x55555633c070 disposed
libnm-Message: Object 0x55555633c730 disposed
libnm-Message: Object 0x55555633eae0 disposed
libnm-Message: Object 0x555556340a80 disposed

Thread 1 "gnome-control-c" received signal SIGSEGV, Segmentation fault.
g_type_check_instance_cast (type_instance=type_instance@entry=0x55555633c070, iface_type=93825006537856) at /.../glib/gobject/gtype.c:4057
4057		  node = lookup_type_node_I (type_instance->g_class->g_type);
(gdb) bt

NetworkManager is calling callbacks on disposed objects, which leads to
crashes in clients (e.g. GNOME Settings).

Fix this issue by disconnecting signal handlers when the objects are
disposed.

Patch originally by Georges Basile Stavracas Neto <georges.stavracas@gmail.com>

https://bugzilla.gnome.org/show_bug.cgi?id=787893
2017-09-22 14:16:50 +02:00
..
tests libnm: move fixup_desc_string() to nm-libnm-utils.c 2017-05-19 12:45:45 +02:00
generate-plugin-docs.pl libnm/generate-plugin-docs: ignore files without a setting name 2017-09-05 10:33:42 +02:00
generate-setting-docs.py cli: embed gtk-doc directly in property-info structure 2017-03-30 16:35:52 +02:00
libnm.pc.in libnm,pkg-config: provide a variable with VPN service directory 2015-08-19 15:13:11 +02:00
libnm.ver libnm/build: un-export wrong symbols for nm-manager.h 2017-08-21 12:19:27 +02:00
NetworkManager.h libnm: add NMSettingUser 2017-03-28 14:58:21 +02:00
nm-access-point.c libnm: handle errors gracefully in nm_access_point_connection_valid() 2017-03-24 12:08:03 +01:00
nm-access-point.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-active-connection.c libnm: fix emission of NMActiveConnection::state notify signal 2017-03-21 17:52:58 +01:00
nm-active-connection.h libnm/active-connection: track reason for state changes 2017-03-17 10:21:19 +01:00
nm-client.c libnm: disconnect signal handlers from old object-manager 2017-09-05 09:31:59 +02:00
nm-client.h libnm: add gtk-doc Since markers for new API and missing enum documentation 2017-08-17 23:08:44 +02:00
nm-dbus-helpers.c libnm: use the o.fd.DBus.ObjectManager API for object management 2016-11-10 16:48:48 +01:00
nm-dbus-helpers.h libnm: use the o.fd.DBus.ObjectManager API for object management 2016-11-10 16:48:48 +01:00
nm-device-adsl.c libnm: use the o.fd.DBus.ObjectManager API for object management 2016-11-10 16:48:48 +01:00
nm-device-adsl.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-device-bond.c libnm: use the o.fd.DBus.ObjectManager API for object management 2016-11-10 16:48:48 +01:00
nm-device-bond.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-device-bridge.c all: change handling of connection.type for bluetooth NAP and in general 2017-06-07 09:07:17 +02:00
nm-device-bridge.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-device-bt.c all: change handling of connection.type for bluetooth NAP and in general 2017-06-07 09:07:17 +02:00
nm-device-bt.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-device-dummy.c libnm: add 'hw-address' property to NMDeviceDummy 2017-06-30 22:04:03 +02:00
nm-device-dummy.h libnm: add 'hw-address' property to NMDeviceDummy 2017-06-30 22:04:03 +02:00
nm-device-ethernet.c libnm: use the o.fd.DBus.ObjectManager API for object management 2016-11-10 16:48:48 +01:00
nm-device-ethernet.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-device-generic.c libnm: use the o.fd.DBus.ObjectManager API for object management 2016-11-10 16:48:48 +01:00
nm-device-generic.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-device-infiniband.c libnm: use the o.fd.DBus.ObjectManager API for object management 2016-11-10 16:48:48 +01:00
nm-device-infiniband.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-device-ip-tunnel.c libnm: use the o.fd.DBus.ObjectManager API for object management 2016-11-10 16:48:48 +01:00
nm-device-ip-tunnel.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-device-macsec.c libnm: (trivial): add missing return description in comment block 2017-01-17 10:34:16 +01:00
nm-device-macsec.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-device-macvlan.c libnm: use the o.fd.DBus.ObjectManager API for object management 2016-11-10 16:48:48 +01:00
nm-device-macvlan.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-device-modem.c libnm: use the o.fd.DBus.ObjectManager API for object management 2016-11-10 16:48:48 +01:00
nm-device-modem.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-device-olpc-mesh.c libnm: use the o.fd.DBus.ObjectManager API for object management 2016-11-10 16:48:48 +01:00
nm-device-olpc-mesh.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-device-ppp.c device: add NMDevicePPP 2017-08-05 08:03:15 +02:00
nm-device-ppp.h device: add NMDevicePPP 2017-08-05 08:03:15 +02:00
nm-device-private.h libnm: use the o.fd.DBus.ObjectManager API for object management 2016-11-10 16:48:48 +01:00
nm-device-team.c libnm: use the o.fd.DBus.ObjectManager API for object management 2016-11-10 16:48:48 +01:00
nm-device-team.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-device-tun.c libnm: use the o.fd.DBus.ObjectManager API for object management 2016-11-10 16:48:48 +01:00
nm-device-tun.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-device-vlan.c libnm: use the o.fd.DBus.ObjectManager API for object management 2016-11-10 16:48:48 +01:00
nm-device-vlan.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-device-vxlan.c libnm: use the o.fd.DBus.ObjectManager API for object management 2016-11-10 16:48:48 +01:00
nm-device-vxlan.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-device-wifi.c all: rename the introspection data to use the interface paths in names 2016-11-23 15:43:42 +01:00
nm-device-wifi.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-device-wimax.c libnm: use the o.fd.DBus.ObjectManager API for object management 2016-11-10 16:48:48 +01:00
nm-device-wimax.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-device.c device: add NMDevicePPP 2017-08-05 08:03:15 +02:00
nm-device.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-dhcp-config.c all: cleanup includes and let "nm-default.h" include "config.h" 2016-02-19 17:53:25 +01:00
nm-dhcp-config.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-dhcp4-config.c libnm: use the o.fd.DBus.ObjectManager API for object management 2016-11-10 16:48:48 +01:00
nm-dhcp4-config.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-dhcp6-config.c libnm: use the o.fd.DBus.ObjectManager API for object management 2016-11-10 16:48:48 +01:00
nm-dhcp6-config.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-dns-manager.c libnm: fix memory leak in DNS manager 2017-04-20 14:33:31 +02:00
nm-dns-manager.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-ip-config.c libnm: coerce empty strings to NULL for D-Bus properties 2016-10-24 10:14:02 +02:00
nm-ip-config.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-ip4-config.c libnm: use the o.fd.DBus.ObjectManager API for object management 2016-11-10 16:48:48 +01:00
nm-ip4-config.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-ip6-config.c libnm: use the o.fd.DBus.ObjectManager API for object management 2016-11-10 16:48:48 +01:00
nm-ip6-config.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-libnm-utils.c libnm: move fixup_desc_string() to nm-libnm-utils.c 2017-05-19 12:45:45 +02:00
nm-libnm-utils.h libnm: move fixup_desc_string() to nm-libnm-utils.c 2017-05-19 12:45:45 +02:00
nm-manager.c manager: Disconnect from signals on the proxy when we're disposed 2017-09-22 14:15:53 +02:00
nm-manager.h libnm: add gtk-doc Since markers for new API and missing enum documentation 2017-08-17 23:08:44 +02:00
nm-object-private.h libnm/udev: cache and reuse udev instance for NMDevice 2017-03-22 12:41:06 +01:00
nm-object.c libnm: remove property getter for NMObject's "dbus-object" and "dbus-object-manager" 2017-06-19 17:20:34 +02:00
nm-object.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-remote-connection-private.h libnm: add libnm/libnm-core (part 1) 2014-08-01 14:34:04 -04:00
nm-remote-connection.c {vpn,remote}-connection: disconnect signal handlers when disposed 2017-09-22 14:16:50 +02:00
nm-remote-connection.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-remote-settings.c all: rename the introspection data to use the interface paths in names 2016-11-23 15:43:42 +01:00
nm-remote-settings.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-secret-agent-old.c agent: don't clear "error", g_simple_async_result_take_error() overtakes it 2016-11-25 14:31:47 +01:00
nm-secret-agent-old.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-types.h device: add NMDevicePPP 2017-08-05 08:03:15 +02:00
nm-vpn-connection.c {vpn,remote}-connection: disconnect signal handlers when disposed 2017-09-22 14:16:50 +02:00
nm-vpn-connection.h libnm/nm-vpn-connection: un-deprecate the NMVpnStateReason use in a header 2017-03-20 14:51:11 +01:00
nm-vpn-editor.c all: cleanup includes and let "nm-default.h" include "config.h" 2016-02-19 17:53:25 +01:00
nm-vpn-editor.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-vpn-plugin-old.c all/trivial: unify construct-only property comments 2017-03-08 13:47:00 +01:00
nm-vpn-plugin-old.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-vpn-service-plugin.c all/trivial: unify construct-only property comments 2017-03-08 13:47:00 +01:00
nm-vpn-service-plugin.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-wimax-nsp.c libnm: use the o.fd.DBus.ObjectManager API for object management 2016-11-10 16:48:48 +01:00
nm-wimax-nsp.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00