2006-05-28 Dan Williams <dcbw@redhat.com>

* 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
This commit is contained in:
Dan Williams
2006-05-28 21:15:15 +00:00
parent 79f75aa61e
commit 2747ae8b75
2 changed files with 15 additions and 4 deletions

View File

@@ -1,3 +1,9 @@
2006-05-28 Dan Williams <dcbw@redhat.com>
* 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 <dcbw@redhat.com> 2006-05-28 Dan Williams <dcbw@redhat.com>
Patch from Chris Fuller <crf@grandecom.net>: Patch from Chris Fuller <crf@grandecom.net>:

View File

@@ -68,11 +68,15 @@ find_vpn_ui_by_service_name (const char *service_name)
{ {
GSList *i; GSList *i;
g_return_val_if_fail (service_name != NULL, NULL);
for (i = vpn_types; i != NULL; i = g_slist_next (i)) { for (i = vpn_types; i != NULL; i = g_slist_next (i)) {
NetworkManagerVpnUI *vpn_ui; NetworkManagerVpnUI *vpn_ui;
const char * vpn_ui_service_name;
vpn_ui = i->data; 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; return vpn_ui;
} }
@@ -91,7 +95,7 @@ static void
update_edit_del_sensitivity (void) update_edit_del_sensitivity (void)
{ {
GtkTreeSelection *selection; GtkTreeSelection *selection;
gboolean is_editable, is_exportable; gboolean is_editable = FALSE, is_exportable = FALSE;
GtkTreeIter iter; GtkTreeIter iter;
selection = gtk_tree_view_get_selection (vpn_conn_view); selection = gtk_tree_view_get_selection (vpn_conn_view);
@@ -99,13 +103,14 @@ update_edit_del_sensitivity (void)
is_editable = is_exportable = FALSE; is_editable = is_exportable = FALSE;
else { else {
NetworkManagerVpnUI *vpn_ui; 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_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); 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); 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); gtk_widget_set_sensitive (vpn_edit, is_editable);