From 68b402ee51f12f8c3b11638b042f57e025359faf Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Thu, 13 Jan 2022 01:05:03 +0100 Subject: ash: ^C with SIG_INGed SIGINT should not exit the shell function old new delta __pgetc 501 522 +21 Signed-off-by: Denys Vlasenko --- loginutils/login.c | 4 +++- loginutils/sulogin.c | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'loginutils') diff --git a/loginutils/login.c b/loginutils/login.c index 569053c12..cac4349b2 100644 --- a/loginutils/login.c +++ b/loginutils/login.c @@ -608,7 +608,9 @@ int login_main(int argc UNUSED_PARAM, char **argv) * But without this, bash 3.0 will not enable ctrl-c either. * Maybe bash is buggy? * Need to find out what standards say about /bin/login - - * should we leave SIGINT etc enabled or disabled? */ + * should we leave SIGINT etc enabled or disabled? + * Also note: sulogin does not do it! Why? + */ signal(SIGINT, SIG_DFL); /* Exec login shell with no additional parameters */ diff --git a/loginutils/sulogin.c b/loginutils/sulogin.c index 5f1c1178f..2f87c77c0 100644 --- a/loginutils/sulogin.c +++ b/loginutils/sulogin.c @@ -111,6 +111,11 @@ int sulogin_main(int argc UNUSED_PARAM, char **argv) } } + /* + * Note: login does this (should we do it too?): + */ + /*signal(SIGINT, SIG_DFL);*/ + /* Exec login shell with no additional parameters. Never returns. */ exec_login_shell(shell); } -- cgit v1.2.3