diff options
author | Brian Cameron <brian.cameron@sun.com> | 2006-05-31 09:24:08 +0000 |
---|---|---|
committer | Brian Cameron <bcameron@src.gnome.org> | 2006-05-31 09:24:08 +0000 |
commit | 6cfe576b6529846cf0cbb9fe0002cf05ff70007c (patch) | |
tree | fcbdf30e6c8347cb692b33eb9bfdeb768726de41 | |
parent | cc906fec1422282d9489f9df6451624adc81fb41 (diff) | |
download | gdm-6cfe576b6529846cf0cbb9fe0002cf05ff70007c.tar.gz |
Correct serious issue where user can enter the configure screen with their
2006-05-31 Brian Cameron <brian.cameron@sun.com>
* gui/gdmlogin.c, gui/greeter/greeter.c,
gui/greeter/greeter_item_ulist.c, gui/greeter/greeter_system.c:
Correct serious issue where user can enter the configure
screen with their user password instead of the root password.
Fixes bug #343476.
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | gui/gdmlogin.c | 7 | ||||
-rw-r--r-- | gui/greeter/greeter.c | 6 | ||||
-rw-r--r-- | gui/greeter/greeter_item_ulist.c | 6 | ||||
-rw-r--r-- | gui/greeter/greeter_system.c | 5 |
5 files changed, 28 insertions, 4 deletions
@@ -1,3 +1,11 @@ +2006-05-31 Brian Cameron <brian.cameron@sun.com> + + * gui/gdmlogin.c, gui/greeter/greeter.c, + gui/greeter/greeter_item_ulist.c, gui/greeter/greeter_system.c: + Correct serious issue where user can enter the configure + screen with their user password instead of the root password. + Fixes bug #343476. + 2006-05-30 Brian Cameron <brian.cameron@sun.com> * vicious-extensions/ve-config.c: Now save in diff --git a/gui/gdmlogin.c b/gui/gdmlogin.c index 2823b356..8ff78b3c 100644 --- a/gui/gdmlogin.c +++ b/gui/gdmlogin.c @@ -641,6 +641,13 @@ set_screen_to_pos (int x, int y) static void gdm_run_gdmconfig (GtkWidget *w, gpointer data) { + gtk_widget_set_sensitive (browser, FALSE); + + /* Make sure to unselect the user */ + if (selected_user != NULL) + g_free (selected_user); + selected_user = NULL; + /* we should be now fine for focusing new windows */ gdm_wm_focus_new_windows (TRUE); diff --git a/gui/greeter/greeter.c b/gui/greeter/greeter.c index 0ed58bf2..5996a248 100644 --- a/gui/greeter/greeter.c +++ b/gui/greeter/greeter.c @@ -161,7 +161,6 @@ greeter_ctrl_handler (GIOChannel *source, buf[len-1] = '\0'; greeter_item_pam_set_user (buf); - greeter_item_ulist_enable (); printf ("%c\n", STX); fflush (stdout); break; @@ -180,7 +179,6 @@ greeter_ctrl_handler (GIOChannel *source, greeter_probably_login_prompt = FALSE; } greeter_ignore_buttons (FALSE); - greeter_item_ulist_enable (); greeter_item_pam_prompt (tmp, PW_ENTRY_SIZE, TRUE); g_free (tmp); @@ -328,6 +326,8 @@ greeter_ctrl_handler (GIOChannel *source, printf ("%c\n", STX); fflush (stdout); greeter_ignore_buttons (FALSE); + greeter_item_ulist_enable (); + break; case GDM_QUIT: @@ -1351,6 +1351,8 @@ main (int argc, char *argv[]) gtk_window_move (GTK_WINDOW (window), gdm_wm_screen.x, gdm_wm_screen.y); gtk_widget_show_now (window); + greeter_item_ulist_unset_selected_user (); + /* can it ever happen that it'd be NULL here ??? */ if G_UNLIKELY (window->window != NULL) { diff --git a/gui/greeter/greeter_item_ulist.c b/gui/greeter/greeter_item_ulist.c index 0bf78717..fd13da7f 100644 --- a/gui/greeter/greeter_item_ulist.c +++ b/gui/greeter/greeter_item_ulist.c @@ -65,6 +65,10 @@ enum void greeter_item_ulist_unset_selected_user (void) { + GtkTreeSelection *selection; + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (user_list)); + gtk_tree_selection_unselect_all (selection); + if (selected_user != NULL) g_free (selected_user); selected_user = NULL; @@ -350,8 +354,6 @@ greeter_item_ulist_setup (void) force_no_tree_separators (user_list); greeter_generate_userlist (user_list); - if ( ! DOING_GDM_DEVELOPMENT) - greeter_item_ulist_disable (); /* Reset size of the widget canvas item so it * is the same size as the userlist. This diff --git a/gui/greeter/greeter_system.c b/gui/greeter/greeter_system.c index 2f28a258..76d5aaa1 100644 --- a/gui/greeter/greeter_system.c +++ b/gui/greeter/greeter_system.c @@ -124,6 +124,11 @@ greeter_suspend_handler (void) static void greeter_config_handler (void) { + greeter_item_ulist_disable (); + + /* Make sure to unselect the user */ + greeter_item_ulist_unset_selected_user (); + /* we should be now fine for focusing new windows */ gdm_wm_focus_new_windows (TRUE); |