summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJody Goldberg <jody@gnome.org>2002-05-16 21:11:55 +0000
committerJody Goldberg <jody@src.gnome.org>2002-05-16 21:11:55 +0000
commitcddec07697d27a1b7c7cc3a6fd042a3bd3976caa (patch)
tree759f3158cec339027992c2afaa0112723459d16f
parent3f31e2bdbd9d22463cdff49cccdea36631b92b81 (diff)
downloadgnome-control-center-cddec07697d27a1b7c7cc3a6fd042a3bd3976caa.tar.gz
add some safety checks for invalid files.
2002-05-16 Jody Goldberg <jody@gnome.org> * theme-switcher.c (install_dialog_response) : add some safety checks for invalid files.
-rw-r--r--capplets/theme-switcher/ChangeLog5
-rw-r--r--capplets/theme-switcher/theme-switcher.c19
2 files changed, 15 insertions, 9 deletions
diff --git a/capplets/theme-switcher/ChangeLog b/capplets/theme-switcher/ChangeLog
index 433381a8c..02b3059d3 100644
--- a/capplets/theme-switcher/ChangeLog
+++ b/capplets/theme-switcher/ChangeLog
@@ -1,5 +1,10 @@
2002-05-16 Jody Goldberg <jody@gnome.org>
+ * theme-switcher.c (install_dialog_response) : add some safety checks
+ for invalid files.
+
+2002-05-16 Jody Goldberg <jody@gnome.org>
+
* theme-switcher.c (cb_dialog_response) : fix path.
(install_dialog_response) : add help link.
diff --git a/capplets/theme-switcher/theme-switcher.c b/capplets/theme-switcher/theme-switcher.c
index bfb62dc6e..ce6c944c8 100644
--- a/capplets/theme-switcher/theme-switcher.c
+++ b/capplets/theme-switcher/theme-switcher.c
@@ -375,16 +375,19 @@ install_dialog_response (GtkWidget *widget, int response_id, gpointer data)
return;
}
- gtk_widget_hide (widget);
-
- switch (response_id)
- {
- case 0:
+ if (response_id == 0) {
raw = gtk_entry_get_text (GTK_ENTRY (gnome_file_entry_gtk_entry (GNOME_FILE_ENTRY (WID ("install_theme_picker")))));
+ if (raw == NULL || strlen (raw) <= 0)
+ return;
+
if (strncmp (raw, "http://", 7) && strncmp (raw, "ftp://", 6) && *raw != '/')
filename = gnome_file_entry_get_full_path (GNOME_FILE_ENTRY (WID ("install_theme_picker")), TRUE);
else
filename = g_strdup (raw);
+ if (filename == NULL)
+ return;
+
+ gtk_widget_hide (widget);
src_uri = gnome_vfs_uri_new (filename);
base = gnome_vfs_uri_extract_short_name (src_uri);
@@ -409,10 +412,8 @@ install_dialog_response (GtkWidget *widget, int response_id, gpointer data)
g_signal_connect (G_OBJECT (dlg), "done",
G_CALLBACK (transfer_done_cb), path);
gtk_widget_show (dlg);
- break;
- default:
- break;
- }
+ } else
+ gtk_widget_hide (widget);
}
static void