diff options
author | Jody Goldberg <jody@gnome.org> | 2002-05-16 21:11:55 +0000 |
---|---|---|
committer | Jody Goldberg <jody@src.gnome.org> | 2002-05-16 21:11:55 +0000 |
commit | cddec07697d27a1b7c7cc3a6fd042a3bd3976caa (patch) | |
tree | 759f3158cec339027992c2afaa0112723459d16f | |
parent | 3f31e2bdbd9d22463cdff49cccdea36631b92b81 (diff) | |
download | gnome-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/ChangeLog | 5 | ||||
-rw-r--r-- | capplets/theme-switcher/theme-switcher.c | 19 |
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 |