From: Markus Gothe Date: Mon, 7 Oct 2024 11:30:46 +0000 (+0200) Subject: inittab: Disable implicit controlling TTY. X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=30542c94c4255acfaffa8e20b88783b01fa00c4a;p=project%2Fprocd.git inittab: Disable implicit controlling TTY. Disable the use of implicit controlling TTYs. They will be enabled on demand. This fixes a bug where 2 or more consecutive Ctrl-C at the login prompt triggers a reboot of the device. Closes: https://github.com/openwrt/openwrt/issues/11306 Signed-off-by: Markus Gothe --- diff --git a/inittab.c b/inittab.c index 73a2174..46ca796 100644 --- a/inittab.c +++ b/inittab.c @@ -79,7 +79,7 @@ static int dev_exist(const char *dev) if (dfd < 0) return 0; - fd = openat(dfd, dev, O_RDONLY); + fd = openat(dfd, dev, O_RDONLY|O_NOCTTY); close(dfd); if (fd < 0) diff --git a/state.c b/state.c index fb81248..cd64431 100644 --- a/state.c +++ b/state.c @@ -79,7 +79,7 @@ static void set_console(void) return; } while (tty!=NULL) { - f = open(tty, O_RDONLY); + f = open(tty, O_RDONLY|O_NOCTTY); if (f >= 0) { close(f); break; diff --git a/utils/utils.c b/utils/utils.c index 1939dbd..ba14269 100644 --- a/utils/utils.c +++ b/utils/utils.c @@ -203,6 +203,8 @@ int patch_fd(const char *device, int fd, int flags) { int dfd, nfd; + flags |= O_NOCTTY; + if (device == NULL) device = "/dev/null";