summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJiří Klimeš <jklimes@redhat.com>2014-11-24 14:38:21 +0100
committerJiří Klimeš <jklimes@redhat.com>2015-01-13 10:27:52 +0100
commit91fd36e166fcf5667e34e0016f7b6919ba931c3b (patch)
tree4ec02472170580ddd2454627361157bbb8b2fd05
parent5cf985e1584af7ebdf13c266bee885cb21d95620 (diff)
downloadNetworkManager-91fd36e166fcf5667e34e0016f7b6919ba931c3b.tar.gz
ifnet: fix a crash in ifnet settings plugin (bgo #737645)
conn_name can be NULL now as the connections are tracked by UUID (see commit 689dadaffbe0ba6f078a0bf3b8d5106788c289eb) Sep 29 21:20:34 Jdeapad NetworkManager[1339]: <info> getting unmanaged specs... Sep 29 21:20:34 Jdeapad NetworkManager[1339]: <info> Checking unmanaged: (null) Sep 29 21:20:38 Jdeapad kernel: NetworkManager[1339]: segfault at 0 ip 00007f1bfffbedd0 sp 00007fff98daa628 error 4 in libglib-2.0.so.0.4002.0[7f1bfff86000+130000] https://bugzilla.gnome.org/show_bug.cgi?id=737645
-rw-r--r--src/settings/plugins/ifnet/net_parser.c6
-rw-r--r--src/settings/plugins/ifnet/plugin.c2
2 files changed, 6 insertions, 2 deletions
diff --git a/src/settings/plugins/ifnet/net_parser.c b/src/settings/plugins/ifnet/net_parser.c
index 1cf46fbf93..755767e296 100644
--- a/src/settings/plugins/ifnet/net_parser.c
+++ b/src/settings/plugins/ifnet/net_parser.c
@@ -396,7 +396,11 @@ ifnet_init (gchar * config_file)
const char *
ifnet_get_data (const char *conn_name, const char *key)
{
- GHashTable *conn = g_hash_table_lookup (conn_table, conn_name);
+ GHashTable *conn;
+
+ g_return_val_if_fail (conn_name && key, NULL);
+
+ conn = g_hash_table_lookup (conn_table, conn_name);
if (conn)
return g_hash_table_lookup (conn, key);
diff --git a/src/settings/plugins/ifnet/plugin.c b/src/settings/plugins/ifnet/plugin.c
index 3eb1ed52f7..6896a4da1a 100644
--- a/src/settings/plugins/ifnet/plugin.c
+++ b/src/settings/plugins/ifnet/plugin.c
@@ -393,7 +393,7 @@ check_unmanaged (gpointer key, gpointer data, gpointer user_data)
conn_name = nm_ifnet_connection_get_conn_name (connection);
- if (is_managed (conn_name))
+ if (!conn_name || is_managed (conn_name))
return;
nm_log_info (LOGD_SETTINGS, "Checking unmanaged: %s", conn_name);