From 287d09a3a0da708bb28ec4e3bfb13621f8ad2316 Mon Sep 17 00:00:00 2001 From: Soumendra Ganguly Date: Sun, 5 Feb 2023 15:31:26 -0600 Subject: [PATCH] Use os.login_tty() in pty.fork() on systems that lack os.forkpty(). Signed-off-by: Soumendra Ganguly --- Lib/pty.py | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/Lib/pty.py b/Lib/pty.py index 03073f07c92c05..b2b08405601ec0 100644 --- a/Lib/pty.py +++ b/Lib/pty.py @@ -101,20 +101,8 @@ def fork(): master_fd, slave_fd = openpty() pid = os.fork() if pid == CHILD: - # Establish a new session. - os.setsid() os.close(master_fd) - - # Slave becomes stdin/stdout/stderr of child. - os.dup2(slave_fd, STDIN_FILENO) - os.dup2(slave_fd, STDOUT_FILENO) - os.dup2(slave_fd, STDERR_FILENO) - if slave_fd > STDERR_FILENO: - os.close(slave_fd) - - # Explicitly open the tty to make it become a controlling tty. - tmp_fd = os.open(os.ttyname(STDOUT_FILENO), os.O_RDWR) - os.close(tmp_fd) + os.login_tty(slave_fd) else: os.close(slave_fd)