From af1c347a31ae243d29c6087da8ffb423b23c74f2 Mon Sep 17 00:00:00 2001 From: Kai Kang Date: Mon, 1 Feb 2021 09:54:48 +0800 Subject: [PATCH] greeter.c: disallow empty new password Do not clear text of label 'promt' when skip_password is set. When user is required to update password, it only shows input box without label for about 1 second. And disallow empty new password when user is required to update it. Upstream-Status: Submitted [https://sourceforge.net/p/lxdm/code/merge-requests/2/] Signed-off-by: Kai Kang --- src/greeter.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/greeter.c b/src/greeter.c index 7e4a168..c0e6b64 100644 --- a/src/greeter.c +++ b/src/greeter.c @@ -220,7 +220,6 @@ static void on_entry_activate(GtkEntry* entry) } if(g_key_file_get_integer(config,"base","skip_password",NULL)!=0) { - gtk_label_set_text( GTK_LABEL(prompt), ""); try_login_user(user); } else @@ -235,6 +239,10 @@ static void on_entry_activate(GtkEntry* entry) if (pass_expired) { if (!new_pass) { new_pass = g_strdup(gtk_entry_get_text(entry)); + if (strlen(new_pass) == 0) { + new_pass = NULL; + gtk_label_set_text((GtkLabel *)info, _("Empty password is not allowed.")); + } switch_to_input_passwd(); } else { tmp = g_strdup(gtk_entry_get_text(entry)); @@ -251,7 +259,7 @@ static void on_entry_activate(GtkEntry* entry) gtk_label_set_text((GtkLabel *)info, _("Maximum number of failed update password attempts exceeded.")); switch_to_input_user(); } - } else if (!strcmp(pass, g_base64_encode((guchar*)new_pass, strlen(new_pass) + 1))) { + } else if (pass && !strcmp(pass, g_base64_encode((guchar*)new_pass, strlen(new_pass) + 1))) { // if new password is same as old one g_free(new_pass); new_pass = NULL; -- 2.25.1