Greg Trounson has proposed merging
lp:~uoms-gregt/lightdm-gtk-greeter/trim-username into lp:lightdm-gtk-greeter.
Commit message:
Ignore whitespace before and after username when authenticating.
Requested reviews:
LightDM Gtk+ Greeter Development Team (lightdm-gtk-greeter-team)
For more details, see:
https://code.launchpad.net/~uoms-gregt/lightdm-gtk-greeter/trim-username/+merge/362953
Our use case:
Users press the space bar to either power up the computer or bring the monitor
out
of sleep. If the computer is already powered on then that keypress propagates
to the username
field in lightdm-gtk-greeter, inserting a <space> before they type their
username, resulting in a failed login. With proportional fonts this is almost
impossible to see at a glance.
Given that whitespace can never be part of a valid username (cf IEEE
1003.1-2001), this patch trims the beginning and end of the username string
before passing it to the authentication code. <Space> characters still appear
in the username field, but have no effect.
To test:
At a lightdm login prompt, type:
<space>username
or:
username<space>
then enter your password.
Pre-patch:
The login will fail.
Post-patch:
The login will succeed.
--
Your team LightDM Gtk+ Greeter Development Team is requested to review the
proposed merge of lp:~uoms-gregt/lightdm-gtk-greeter/trim-username into
lp:lightdm-gtk-greeter.
=== modified file 'src/lightdm-gtk-greeter.c'
--- src/lightdm-gtk-greeter.c 2018-03-15 00:29:41 +0000
+++ src/lightdm-gtk-greeter.c 2019-02-10 20:58:40 +0000
@@ -1999,13 +1999,17 @@
password_prompted = FALSE;
prompt_active = FALSE;
+ gchar* trimmed_username;
+ trimmed_username = g_strdup (username);
+ g_strstrip (trimmed_username);
+
if (pending_questions)
{
g_slist_free_full (pending_questions, (GDestroyNotify) pam_message_finalize);
pending_questions = NULL;
}
- config_set_string (STATE_SECTION_GREETER, STATE_KEY_LAST_USER, username);
+ config_set_string (STATE_SECTION_GREETER, STATE_KEY_LAST_USER, trimmed_username);
if (g_strcmp0 (username, "*other") == 0)
{
@@ -2031,7 +2035,7 @@
}
}
}
- else if (g_strcmp0 (username, "*guest") == 0)
+ else if (g_strcmp0 (trimmed_username, "*guest") == 0)
{
#ifdef HAVE_LIBLIGHTDMGOBJECT_1_19_2
lightdm_greeter_authenticate_as_guest (greeter, NULL);
@@ -2043,7 +2047,7 @@
{
LightDMUser *user;
- user = lightdm_user_list_get_user_by_name (lightdm_user_list_get_instance (), username);
+ user = lightdm_user_list_get_user_by_name (lightdm_user_list_get_instance (), trimmed_username);
if (user)
{
if (!current_session)
@@ -2057,11 +2061,12 @@
set_language (NULL);
}
#ifdef HAVE_LIBLIGHTDMGOBJECT_1_19_2
- lightdm_greeter_authenticate (greeter, username, NULL);
+ lightdm_greeter_authenticate (greeter, trimmed_username, NULL);
#else
- lightdm_greeter_authenticate (greeter, username);
+ lightdm_greeter_authenticate (greeter, trimmed_username);
#endif
}
+ g_free (trimmed_username);
}
static void
--
Mailing list: https://launchpad.net/~lightdm-gtk-greeter-team
Post to : [email protected]
Unsubscribe : https://launchpad.net/~lightdm-gtk-greeter-team
More help : https://help.launchpad.net/ListHelp