diff options
author | Thomas Haller <thaller@redhat.com> | 2014-06-02 13:27:43 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2014-06-02 16:08:02 +0200 |
commit | 7ac7249fc84e50928e11dfe756b30762a7321165 (patch) | |
tree | 2b2672655ffebce5ded49dca97d51ae93034cf51 /src/nm-policy.c | |
parent | 16d34bfe82605e30f068c775671ae1dd0f178eeb (diff) | |
download | NetworkManager-7ac7249fc84e50928e11dfe756b30762a7321165.tar.gz |
core/firewall: fix accessing non-existing connection for device in firewall_started()
When starting firewall, NMPolicy would fail the following assertion:
NetworkManager[1462]: <debug> [1401708294.250829] [firewall-manager/nm-firewall-manager.c:218] name_owner_changed(): firewall started
(NetworkManager:1462): libnm-util-CRITICAL **: nm_connection_get_setting_connection: assertion 'NM_IS_CONNECTION (connection)' failed
#0 0x0000003370c504e9 in g_logv () from /lib64/libglib-2.0.so.0
#1 0x0000003370c5063f in g_log () from /lib64/libglib-2.0.so.0
#2 0x00007f306f960e11 in nm_connection_get_setting_connection (connection=0x0) at nm-connection.c:1441
#3 0x0000000000482319 in firewall_started (manager=<optimized out>, user_data=<optimized out>) at nm-policy.c:1881
#4 0x0000003371c104c7 in _g_closure_invoke_va () from /lib64/libgobject-2.0.so.0
#5 0x0000003371c29749 in g_signal_emit_valist () from /lib64/libgobject-2.0.so.0
#6 0x0000003371c2a3af in g_signal_emit () from /lib64/libgobject-2.0.so.0
#7 0x0000000000445d39 in name_owner_changed (dbus_mgr=<optimized out>, name=<optimized out>, old_owner=0x1452660 "", new_owner=0x1536720 ":1.175", user_data=<optimized out>) at firewall-manager/nm-firewall-manager.c:220
...
Signed-off-by: Thomas Haller <thaller@redhat.com>
Diffstat (limited to 'src/nm-policy.c')
-rw-r--r-- | src/nm-policy.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/nm-policy.c b/src/nm-policy.c index b92b963a36..90cb13af8e 100644 --- a/src/nm-policy.c +++ b/src/nm-policy.c @@ -1878,6 +1878,9 @@ firewall_started (NMFirewallManager *manager, NMDevice *dev = NM_DEVICE (iter->data); connection = nm_device_get_connection (dev); + if (!connection) + continue; + s_con = nm_connection_get_setting_connection (connection); if (nm_device_get_state (dev) == NM_DEVICE_STATE_ACTIVATED) { nm_firewall_manager_add_or_change_zone (priv->fw_manager, |