diff options
author | George Lebl <jirka@5z.com> | 2003-07-31 20:01:38 +0000 |
---|---|---|
committer | George Lebl <jirka@src.gnome.org> | 2003-07-31 20:01:38 +0000 |
commit | a55b1326c1d40973589d287b544ecd6eade34455 (patch) | |
tree | 02e52b158997795a3425763629821de6b9012210 /gui | |
parent | a1199bd41f07902677026380a49020ffe3d3f08d (diff) | |
download | gdm-a55b1326c1d40973589d287b544ecd6eade34455.tar.gz |
update comments
Thu Jul 31 12:58:26 2003 George Lebl <jirka@5z.com>
* XKeepsCrashing, daemon/verify-pam.c: update comments
* daemon/misc.c: fix leaks/crashes in the text message dialog stuff
* daemon/slave.c: do a chdir as the user id again just for sanity
sake
* gui/gdmlogin.c, gui/greeter/greeter_item_ulist.c: don't load
more then 50 users into the user listing. This should fix
random crap happening on large systems using things like NIS
(you shouldn't use face browser here anyway)
* gui/greeter/greeter.c: remove the use of redundant
_set_has_separator
* NEWS: update
Diffstat (limited to 'gui')
-rw-r--r-- | gui/gdmlogin.c | 16 | ||||
-rw-r--r-- | gui/greeter/greeter.c | 1 | ||||
-rw-r--r-- | gui/greeter/greeter_item_ulist.c | 23 |
3 files changed, 35 insertions, 5 deletions
diff --git a/gui/gdmlogin.c b/gui/gdmlogin.c index 03f2ffed..e32b88fa 100644 --- a/gui/gdmlogin.c +++ b/gui/gdmlogin.c @@ -3030,6 +3030,9 @@ gdm_login_user_alloc (const gchar *logname, uid_t uid, const gchar *homedir, if (defface != NULL) user->picture = (GdkPixbuf *)g_object_ref (G_OBJECT (defface)); + if (ve_string_empty (logname)) + return user; + /* don't read faces, since that requires the daemon */ if (DOING_GDM_DEVELOPMENT) return user; @@ -3219,6 +3222,19 @@ gdm_login_users_init (void) pwent = getpwent(); while (pwent != NULL) { + + /* FIXME: fix properly, see bug #111830 */ + if (number_of_users > 50) { + user = gdm_login_user_alloc ("", + 9999 /*fake uid*/, + "/", + _("Too many users to list here...")); + users = g_list_insert_sorted (users, user, + (GCompareFunc) gdm_login_sort_func); + /* don't update the size numbers, it's ok if this "user" is + offscreen */ + break; + } if (pwent->pw_shell && gdm_login_check_shell (pwent->pw_shell) && diff --git a/gui/greeter/greeter.c b/gui/greeter/greeter.c index bf06aa67..a508fee3 100644 --- a/gui/greeter/greeter.c +++ b/gui/greeter/greeter.c @@ -319,7 +319,6 @@ greeter_ctrl_handler (GIOChannel *source, tmp, /* avoid warning */ "%s", ""); g_free (tmp); - gtk_dialog_set_has_separator (GTK_DIALOG (dlg), FALSE); gdm_wm_center_window (GTK_WINDOW (dlg)); diff --git a/gui/greeter/greeter_item_ulist.c b/gui/greeter/greeter_item_ulist.c index 1267cdd1..20526ae1 100644 --- a/gui/greeter/greeter_item_ulist.c +++ b/gui/greeter/greeter_item_ulist.c @@ -67,6 +67,9 @@ gdm_greeter_user_alloc (const gchar *logname, uid_t uid, const gchar *homedir, if (defface != NULL) user->picture = (GdkPixbuf *)g_object_ref (G_OBJECT (defface)); + if (ve_string_empty (logname)) + return user; + /* don't read faces, since that requires the daemon */ if (DOING_GDM_DEVELOPMENT) return user; @@ -265,15 +268,27 @@ gdm_greeter_users_init (void) pwent = getpwent(); while (pwent != NULL) { + + /* FIXME: fix properly, see bug #111830 */ + if (number_of_users > 50) { + user = gdm_greeter_user_alloc ("", + 9999 /*fake uid*/, + "/", + _("Too many users to list here...")); + users = g_list_insert_sorted (users, user, + (GCompareFunc) gdm_greeter_sort_func); + /* don't update the size numbers */ + break; + } if (pwent->pw_shell && gdm_greeter_check_shell (pwent->pw_shell) && !gdm_greeter_check_exclude(pwent)) { - user = gdm_greeter_user_alloc(pwent->pw_name, - pwent->pw_uid, - pwent->pw_dir, - pwent->pw_gecos); + user = gdm_greeter_user_alloc (pwent->pw_name, + pwent->pw_uid, + pwent->pw_dir, + pwent->pw_gecos); if ((user) && (! g_list_find_custom (users, user, (GCompareFunc) gdm_greeter_sort_func))) { |