[PATCH procd] Disable implicit controlling TTY.
Markus Gothe
markus.gothe at genexis.eu
Tue Oct 8 04:38:02 PDT 2024
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 <markus.gothe at genexis.eu>
---
inittab.c | 2 +-
state.c | 2 +-
utils/utils.c | 2 ++
3 files changed, 4 insertions(+), 2 deletions(-)
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";
--
2.46.2
More information about the openwrt-devel
mailing list