From 2747ae8b757ad1c47bcd72b344ea946b20aa33d4 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Sun, 28 May 2006 21:15:15 +0000 Subject: [PATCH] 2006-05-28 Dan Williams * gnome/vpn-properties/nm-vpn-properties.c - (find_vpn_ui_by_service_name): protect against NULL service names - (update_edit_del_sensitivity): protect against NULL service names git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1777 4912f4e0-d625-0410-9fb7-b9a5a253dbdc --- ChangeLog | 6 ++++++ gnome/vpn-properties/nm-vpn-properties.c | 13 +++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2517f95f5..21f32c587 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2006-05-28 Dan Williams + + * gnome/vpn-properties/nm-vpn-properties.c + - (find_vpn_ui_by_service_name): protect against NULL service names + - (update_edit_del_sensitivity): protect against NULL service names + 2006-05-28 Dan Williams Patch from Chris Fuller : diff --git a/gnome/vpn-properties/nm-vpn-properties.c b/gnome/vpn-properties/nm-vpn-properties.c index 233bb5a1d..0a6650108 100644 --- a/gnome/vpn-properties/nm-vpn-properties.c +++ b/gnome/vpn-properties/nm-vpn-properties.c @@ -68,11 +68,15 @@ find_vpn_ui_by_service_name (const char *service_name) { GSList *i; + g_return_val_if_fail (service_name != NULL, NULL); + for (i = vpn_types; i != NULL; i = g_slist_next (i)) { NetworkManagerVpnUI *vpn_ui; + const char * vpn_ui_service_name; vpn_ui = i->data; - if (strcmp (vpn_ui->get_service_name (vpn_ui), service_name) == 0) + vpn_ui_service_name = vpn_ui->get_service_name (vpn_ui); + if (vpn_ui_service_name && strcmp (vpn_ui_service_name, service_name) == 0) return vpn_ui; } @@ -91,7 +95,7 @@ static void update_edit_del_sensitivity (void) { GtkTreeSelection *selection; - gboolean is_editable, is_exportable; + gboolean is_editable = FALSE, is_exportable = FALSE; GtkTreeIter iter; selection = gtk_tree_view_get_selection (vpn_conn_view); @@ -99,13 +103,14 @@ update_edit_del_sensitivity (void) is_editable = is_exportable = FALSE; else { NetworkManagerVpnUI *vpn_ui; - const char *service_name; + const char *service_name = NULL; gtk_tree_model_get (GTK_TREE_MODEL (vpn_conn_list), &iter, VPNCONN_USER_CAN_EDIT_COLUMN, &is_editable, -1); gtk_tree_model_get (GTK_TREE_MODEL (vpn_conn_list), &iter, VPNCONN_SVC_NAME_COLUMN, &service_name, -1); vpn_ui = find_vpn_ui_by_service_name (service_name); - is_exportable = vpn_ui->can_export (vpn_ui); + if (vpn_ui) + is_exportable = vpn_ui->can_export (vpn_ui); } gtk_widget_set_sensitive (vpn_edit, is_editable);