From 91fd36e166fcf5667e34e0016f7b6919ba931c3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= Date: Mon, 24 Nov 2014 14:38:21 +0100 Subject: [PATCH] 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]: getting unmanaged specs... Sep 29 21:20:34 Jdeapad NetworkManager[1339]: 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 --- src/settings/plugins/ifnet/net_parser.c | 6 +++++- 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);