From bb2dbe7c6a951baaab5ea8c426d062c7f9823018 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 8 Nov 2023 13:55:58 +0100 Subject: [PATCH] exec-invoke: only reset tty if we are told to We have a setting for this, honour it also if we are invoked with stdin passed in as fd. Fixes: #29714 --- src/core/exec-invoke.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/core/exec-invoke.c b/src/core/exec-invoke.c index 627b96d435..5ba0a47148 100644 --- a/src/core/exec-invoke.c +++ b/src/core/exec-invoke.c @@ -393,7 +393,10 @@ static int setup_input( /* Try to make this the controlling tty, if it is a tty, and reset it */ if (isatty(STDIN_FILENO)) { (void) ioctl(STDIN_FILENO, TIOCSCTTY, context->std_input == EXEC_INPUT_TTY_FORCE); - (void) reset_terminal_fd(STDIN_FILENO, true); + + if (context->tty_reset) + (void) reset_terminal_fd(STDIN_FILENO, /* switch_to_text= */ true); + (void) exec_context_apply_tty_size(context, STDIN_FILENO, /* tty_path= */ NULL); }