1From af1c347a31ae243d29c6087da8ffb423b23c74f2 Mon Sep 17 00:00:00 2001
2From: Kai Kang <kai.kang@windriver.com>
3Date: Mon, 1 Feb 2021 09:54:48 +0800
4Subject: [PATCH] greeter.c: disallow empty new password
5
6Do not clear text of label 'promt' when skip_password is set. When user
7is required to update password, it only shows input box without label
8for about 1 second.
9
10And disallow empty new password when user is required to update it.
11
12Upstream-Status: Submitted [https://sourceforge.net/p/lxdm/code/merge-requests/2/]
13
14Signed-off-by: Kai Kang <kai.kang@windriver.com>
15---
16 src/greeter.c | 7 +++++--
17 1 file changed, 5 insertions(+), 2 deletions(-)
18
19diff --git a/src/greeter.c b/src/greeter.c
20index 7e4a168..c0e6b64 100644
21--- a/src/greeter.c
22+++ b/src/greeter.c
23@@ -220,7 +220,6 @@ static void on_entry_activate(GtkEntry* entry)
24 		}
25 		if(g_key_file_get_integer(config,"base","skip_password",NULL)!=0)
26 		{
27-			gtk_label_set_text( GTK_LABEL(prompt), "");
28 			try_login_user(user);
29 		}
30 		else
31@@ -235,6 +239,10 @@ static void on_entry_activate(GtkEntry* entry)
32 		if (pass_expired) {
33 			if (!new_pass) {
34 				new_pass = g_strdup(gtk_entry_get_text(entry));
35+				if (strlen(new_pass) == 0) {
36+					new_pass = NULL;
37+					gtk_label_set_text((GtkLabel *)info, _("Empty password is not allowed."));
38+				}
39 				switch_to_input_passwd();
40 			} else {
41 				tmp = g_strdup(gtk_entry_get_text(entry));
42@@ -251,7 +259,7 @@ static void on_entry_activate(GtkEntry* entry)
43 						gtk_label_set_text((GtkLabel *)info, _("Maximum number of failed update password attempts exceeded."));
44 						switch_to_input_user();
45 					}
46-				} else if (!strcmp(pass, g_base64_encode((guchar*)new_pass, strlen(new_pass) + 1))) {
47+				} else if (pass && !strcmp(pass, g_base64_encode((guchar*)new_pass, strlen(new_pass) + 1))) {
48 					// if new password is same as old one
49 					g_free(new_pass);
50 					new_pass = NULL;
51--
522.25.1
53
54