NetworkManager/src
Jiří Klimeš f6b4ab7d3b settings: fix a crash in emit_updated() accessing invalid pointer
by disconnecting signal handlers in dispose().

Commit 6a19e68a moved nm_connection_clear_secrets() from plugins' finalize() to
NMSettingsConnection's dispose(). But clearing secrets emits "changed" signal
which cause changed_cb() to be called and emit_updated() scheduled. And
emit_updated() was called later after finalize() on released object.

The crash can be invoked by having two keyfile connection files with the same
uuid in them.

Backtrace:
 (NetworkManager:12262): GLib-GObject-WARNING **: attempt to retrieve private data for invalid type 'NMSettingsConnection'
 Program received signal SIGSEGV, Segmentation fault.
 emit_updated (self=0xf38dd0 [NMSettingConnection]) at settings/nm-settings-connection.c:401
 401		NM_SETTINGS_CONNECTION_GET_PRIVATE (self)->updated_idle_id = 0;
 (gdb) bt
 #0  emit_updated (self=0xf38dd0 [NMSettingConnection]) at settings/nm-settings-connection.c:401
 #1  0x0000003c49647825 in g_main_dispatch (context=0x785970) at gmain.c:2539
 #2  g_main_context_dispatch (context=context@entry=0x785970) at gmain.c:3075
 #3  0x0000003c49647b58 in g_main_context_iterate (context=0x785970, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3146
 #4  0x0000003c49647f52 in g_main_loop_run (loop=0x7857c0) at gmain.c:3340
 #5  0x000000000042d4e9 in main (argc=1, argv=0x7fffffffe508) at main.c:679
2014-08-28 09:44:04 +02:00
..
devices core: refactor nm_utils_complete_generic() not to use a dynamic format string 2014-08-25 16:46:14 +02:00
dhcp-manager all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
dns-manager all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
dnsmasq-manager all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
firewall-manager all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
platform platform: (trivial) don't shadow link(3) in NMLinuxPlatform 2014-08-21 11:16:43 +02:00
ppp-manager libnm-core: fix crash in NMSettingAdsl:verify() 2014-08-19 00:13:11 +02:00
rdisc all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
settings settings: fix a crash in emit_updated() accessing invalid pointer 2014-08-28 09:44:04 +02:00
supplicant-manager supplicant/ifnet: fix spelling of "private_key2_passwd" option 2014-08-27 09:20:02 -05:00
tests trivial: don't shadow rand(3) 2014-08-20 14:18:14 -05:00
vpn-manager libnm-core, libnm, core: make NMConnection an interface 2014-08-16 10:17:53 -04:00
main.c libnm: rename NetworkManager.h and NetworkManagerVPN.h 2014-08-01 14:34:40 -04:00
Makefile.am logging: extract logging macros for devices to nm-device-logging.h 2014-08-06 19:22:02 +02:00
NetworkManagerUtils.c core: refactor nm_utils_complete_generic() not to use a dynamic format string 2014-08-25 16:46:14 +02:00
NetworkManagerUtils.h core: refactor nm_utils_complete_generic() not to use a dynamic format string 2014-08-25 16:46:14 +02:00
nm-activation-request.c include: drop nm-settings-flags.h, move NMSecretAgentGetSecretsFlags 2014-08-01 14:34:39 -04:00
nm-activation-request.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-active-connection.c libnm: rename NetworkManager.h and NetworkManagerVPN.h 2014-08-01 14:34:40 -04:00
nm-active-connection.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-auth-subject.c settings: prefer secret agents in the same process as the request 2013-12-03 16:41:00 -05:00
nm-auth-subject.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-config.c core: update data types of some hwaddr properties 2014-08-07 15:41:04 -04:00
nm-config.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-connection-provider.c core: remove useless NMSettings::connections-loaded signal 2014-01-23 15:14:49 -05:00
nm-connection-provider.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-connectivity.c all: remove remaining GParamSpec name/blurb strings 2014-06-19 17:45:03 -04:00
nm-connectivity.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-dbus-manager.c libnm: rename NetworkManager.h and NetworkManagerVPN.h 2014-08-01 14:34:40 -04:00
nm-dbus-manager.h core: fill in nm-types.h, clean out other headers 2014-07-23 10:56:26 -04:00
nm-dcb.c dcb: wait for carrier down/up after disabling FCoE 2014-04-02 09:37:15 -05:00
nm-dcb.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-dhcp4-config.c libnm: rename NetworkManager.h and NetworkManagerVPN.h 2014-08-01 14:34:40 -04:00
nm-dhcp4-config.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-dhcp6-config.c libnm: rename NetworkManager.h and NetworkManagerVPN.h 2014-08-01 14:34:40 -04:00
nm-dhcp6-config.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-dispatcher.c libnm: consistently use "INTERFACE" rather than "IFACE" in macros 2014-08-01 14:34:06 -04:00
nm-dispatcher.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-ip4-config.c all: add nm-core-internal.h header 2014-08-22 15:22:16 +02:00
nm-ip4-config.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-ip6-config.c core: refactor nm_ip[46]_config_commit() not to make a copy of route 2014-07-29 23:42:50 +02:00
nm-ip6-config.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-logging.c core/logging: change order or domain/level arguments for nm_log() 2014-08-01 19:06:25 +02:00
nm-logging.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-manager-auth.c core: fill in nm-types.h, clean out other headers 2014-07-23 10:56:26 -04:00
nm-manager-auth.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-manager.c core: refactor nm_utils_complete_generic() not to use a dynamic format string 2014-08-25 16:46:14 +02:00
nm-manager.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-policy.c libnm, core, cli, tui: fix the capitalization of various types 2014-08-01 14:34:06 -04:00
nm-policy.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-posix-signals.c core: merge src/config, src/logging, src/posix-signals into src/ 2014-07-30 15:56:29 -04:00
nm-posix-signals.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-properties-changed-signal.c logging: tweak logging-enabled functions 2013-12-20 09:57:13 -05:00
nm-properties-changed-signal.h core: make nm-properties-changed-signal always export the right properties 2013-05-20 16:38:33 -03:00
nm-rfkill-manager.c core: split NMRfkillManager out of NMUdevManager 2013-06-05 17:49:24 -03:00
nm-rfkill-manager.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-session-monitor-ck.c core: make NMSessionMonitor non-refcounted 2013-12-03 16:39:37 -05:00
nm-session-monitor-null.c core: make NMSessionMonitor non-refcounted 2013-12-03 16:39:37 -05:00
nm-session-monitor-systemd.c sessions: fix return value handling for sd_uid_get_sessions() (bgo #707983) 2014-01-23 16:48:19 -06:00
nm-session-monitor.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-session-utils.c Use glib-mkenums to generate enum types 2012-02-15 11:42:15 -05:00
nm-session-utils.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-sleep-monitor-systemd.c sleep-monitor: add missing include 2013-09-13 09:05:07 -04:00
nm-sleep-monitor-upower.c core: convert the DBus manager to a single-ref object 2013-05-20 16:38:33 -03:00
nm-sleep-monitor.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-types.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
org.freedesktop.NetworkManager.conf dbus: kill at_console usage in permissions (bgo #707983) (rh #979416) 2014-01-23 16:48:19 -06:00