From 88aefd4c461713977f2f6f86c4a0209f5925e5b6 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Fri, 22 May 2020 10:22:12 +0200 Subject: [PATCH] agetty: ignore ^C Danc86 wrote: With agetty 2.32.1 and earlier, ^C at the login prompt is ignored. I noticed when upgrading to agetty 2.34, typing ^C now causes agetty to stop responding for 10 seconds and then it dies (and gets restarted by system and a new login prompt is printed). It logs this message: agetty[46048]: ttyS0: invalid character 0x3 in login name Previously the !isprint(ascval) condition would have caused control characters like ^C (\x03) to be discarded, whereas now it falls through to trying to decode it as part of a UTF-8 sequence, and then fails. Fixes: http://github.com/karelzak/util-linux/commit/5de9751997cf490088f62f41fd92be57cf7ceea4 Addresses: https://github.com/karelzak/util-linux/issues/1046 Signed-off-by: Karel Zak --- term-utils/agetty.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/term-utils/agetty.c b/term-utils/agetty.c index 73041c5c6..8854798f6 100644 --- a/term-utils/agetty.c +++ b/term-utils/agetty.c @@ -2271,6 +2271,9 @@ static char *get_logname(struct issue *ie, struct options *op, struct termios *t break; case CTL('D'): exit(EXIT_SUCCESS); + case CTL('C'): + /* Ignore */ + break; default: if ((size_t)(bp - logname) >= sizeof(logname) - 1) log_err(_("%s: input overrun"), op->tty);