diff options
author | Brian Cameron <brian.cameron@sun.com> | 2006-05-31 10:26:02 +0000 |
---|---|---|
committer | Brian Cameron <bcameron@src.gnome.org> | 2006-05-31 10:26:02 +0000 |
commit | c6b3a2724d273c93af17c1a315ad8af78ac36f51 (patch) | |
tree | 396359c22b80d723ca7870e440192e5c46349718 | |
parent | 17195b520b980a34e6aa5b075f88c49aa2060ef1 (diff) | |
download | gdm-c6b3a2724d273c93af17c1a315ad8af78ac36f51.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.[ch], 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 | 2 | ||||
-rw-r--r-- | gui/greeter/greeter.c | 6 | ||||
-rw-r--r-- | gui/greeter/greeter_item_ulist.c | 10 | ||||
-rw-r--r-- | gui/greeter/greeter_item_ulist.h | 1 | ||||
-rw-r--r-- | gui/greeter/greeter_system.c | 5 |
6 files changed, 29 insertions, 3 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.[ch], 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-03-22 Tommi Vainikainen <thv@iki.fi> * configure.in (ALL_LINGUAS): Added Dzongkha (dz). diff --git a/gui/gdmlogin.c b/gui/gdmlogin.c index 5965d0bf..b574beef 100644 --- a/gui/gdmlogin.c +++ b/gui/gdmlogin.c @@ -798,6 +798,8 @@ gdm_parse_enriched_string (const char *pre, const gchar *s, const char *post) static void gdm_run_gdmconfig (GtkWidget *w, gpointer data) { + gtk_widget_set_sensitive (browser, FALSE); + /* 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 0fdc8afc..b2c621d1 100644 --- a/gui/greeter/greeter.c +++ b/gui/greeter/greeter.c @@ -384,7 +384,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; @@ -541,6 +540,8 @@ greeter_ctrl_handler (GIOChannel *source, printf ("%c\n", STX); fflush (stdout); greeter_ignore_buttons (FALSE); + greeter_item_ulist_enable (); + break; case GDM_QUIT: @@ -1504,6 +1505,9 @@ 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 (); + greeter_item_ulist_enable (); + /* 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 04976430..52450ba5 100644 --- a/gui/greeter/greeter_item_ulist.c +++ b/gui/greeter/greeter_item_ulist.c @@ -62,6 +62,14 @@ enum GREETER_ULIST_ACTIVE_COLUMN }; +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); +} + static void check_for_displays (void) { @@ -325,8 +333,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_item_ulist.h b/gui/greeter/greeter_item_ulist.h index ad8cdba2..00d98bba 100644 --- a/gui/greeter/greeter_item_ulist.h +++ b/gui/greeter/greeter_item_ulist.h @@ -25,5 +25,6 @@ gboolean greeter_item_ulist_setup (void); void greeter_item_ulist_enable (void); void greeter_item_ulist_disable (void); void greeter_item_ulist_set_user (const char *user); +void greeter_item_ulist_unset_selected_user (void); #endif diff --git a/gui/greeter/greeter_system.c b/gui/greeter/greeter_system.c index 8899ac13..4baa615e 100644 --- a/gui/greeter/greeter_system.c +++ b/gui/greeter/greeter_system.c @@ -119,6 +119,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); |