summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSoumya <soumya.sambu@windriver.com>2023-03-31 16:26:51 +0000
committerSteve Sakoman <steve@sakoman.com>2023-04-05 06:24:00 -1000
commite5c1b64ea66fb1cbdb6403fa26d4d42b9d64e44f (patch)
tree29915be495d75a94b9f4ddfb1133102a9e4eaba3
parentbed045277b835d38048021e7ad158f27dd3ae9bb (diff)
downloadopenembedded-core-contrib-e5c1b64ea66fb1cbdb6403fa26d4d42b9d64e44f.tar.gz
shadow: Fix can not print full login timeout message
When we do not enter password during login, it is expected to display message "Login timed out after 60 seconds". But it prints only first few bytes(like "Login t") when write is immediately followed by exit. Fix - Calling exit from new handler provides enough time to display full message. Upstream-Status: Accepted [https://github.com/shadow-maint/shadow/commit/670cae834827a8f794e6f7464fa57790d911b63c] Signed-off-by: Soumya <soumya.sambu@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 644cfe9dcf351bfa6c67f4b4d1e7dec416a59021) Signed-off-by: Steve Sakoman <steve@sakoman.com>
-rw-r--r--meta/recipes-extended/shadow/files/0001-Fix-can-not-print-full-login.patch41
-rw-r--r--meta/recipes-extended/shadow/shadow.inc1
2 files changed, 42 insertions, 0 deletions
diff --git a/meta/recipes-extended/shadow/files/0001-Fix-can-not-print-full-login.patch b/meta/recipes-extended/shadow/files/0001-Fix-can-not-print-full-login.patch
new file mode 100644
index 0000000000..37ba5f3dc2
--- /dev/null
+++ b/meta/recipes-extended/shadow/files/0001-Fix-can-not-print-full-login.patch
@@ -0,0 +1,41 @@
+commit 670cae834827a8f794e6f7464fa57790d911b63c
+Author: SoumyaWind <121475834+SoumyaWind@users.noreply.github.com>
+Date: Tue Dec 27 17:40:17 2022 +0530
+
+ shadow: Fix can not print full login timeout message
+
+ Login timed out message prints only first few bytes when write is immediately followed by exit.
+ Calling exit from new handler provides enough time to display full message.
+
+Upstream-Status: Accepted [https://github.com/shadow-maint/shadow/commit/670cae834827a8f794e6f7464fa57790d911b63c]
+
+diff --git a/src/login.c b/src/login.c
+index 116e2cb3..c55f4de0 100644
+--- a/src/login.c
++++ b/src/login.c
+@@ -120,6 +120,7 @@ static void get_pam_user (char **ptr_pam_user);
+
+ static void init_env (void);
+ static void alarm_handler (int);
++static void exit_handler (int);
+
+ /*
+ * usage - print login command usage and exit
+@@ -391,11 +392,16 @@ static void init_env (void)
+ #endif /* !USE_PAM */
+ }
+
++static void exit_handler (unused int sig)
++{
++ _exit (0);
++}
+
+ static void alarm_handler (unused int sig)
+ {
+ write (STDERR_FILENO, tmsg, strlen (tmsg));
+- _exit (0);
++ signal(SIGALRM, exit_handler);
++ alarm(2);
+ }
+
+ #ifdef USE_PAM
diff --git a/meta/recipes-extended/shadow/shadow.inc b/meta/recipes-extended/shadow/shadow.inc
index 5656a375b7..0ed220ac5c 100644
--- a/meta/recipes-extended/shadow/shadow.inc
+++ b/meta/recipes-extended/shadow/shadow.inc
@@ -15,6 +15,7 @@ SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BP}.tar.gz \
file://0001-shadow-use-relaxed-usernames.patch \
${@bb.utils.contains('PACKAGECONFIG', 'pam', '${PAM_SRC_URI}', '', d)} \
file://useradd \
+ file://0001-Fix-can-not-print-full-login.patch \
"
SRC_URI:append:class-target = " \