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
This commit is contained in:
Lennart Poettering
2023-11-10 21:38:26 +01:00
parent d2b9e75524
commit bb2dbe7c6a
+4 -1
View File
@@ -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);
}