summaryrefslogtreecommitdiff
path: root/src/nm-policy.c
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2014-06-02 13:27:43 +0200
committerThomas Haller <thaller@redhat.com>2014-06-02 16:08:02 +0200
commit7ac7249fc84e50928e11dfe756b30762a7321165 (patch)
tree2b2672655ffebce5ded49dca97d51ae93034cf51 /src/nm-policy.c
parent16d34bfe82605e30f068c775671ae1dd0f178eeb (diff)
downloadNetworkManager-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.c3
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,