diff options
author | Jiří Klimeš <jklimes@redhat.com> | 2014-11-24 14:38:21 +0100 |
---|---|---|
committer | Jiří Klimeš <jklimes@redhat.com> | 2015-01-13 10:27:52 +0100 |
commit | 91fd36e166fcf5667e34e0016f7b6919ba931c3b (patch) | |
tree | 4ec02472170580ddd2454627361157bbb8b2fd05 | |
parent | 5cf985e1584af7ebdf13c266bee885cb21d95620 (diff) | |
download | NetworkManager-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.c | 6 | ||||
-rw-r--r-- | src/settings/plugins/ifnet/plugin.c | 2 |
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); |