Making stdin/stdout non-blocking causes open_init_pty to hang if
they are closed, ala
./open_init_pty bash -c 'echo hello; exec >&- 2>&- <&-; sleep 1; '
and per
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=474956#10

This reverts commit fb081eb64b36a9de5a43f3d69d9e628b6eb1afc7.

Reported-by: Laurent Bigonville <bi...@debian.org>
Signed-off-by: Stephen Smalley <s...@tycho.nsa.gov>
---
 policycoreutils/run_init/open_init_pty.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/policycoreutils/run_init/open_init_pty.c 
b/policycoreutils/run_init/open_init_pty.c
index b37ae4d..6e25ea3 100644
--- a/policycoreutils/run_init/open_init_pty.c
+++ b/policycoreutils/run_init/open_init_pty.c
@@ -276,8 +276,10 @@ int main(int argc, char *argv[])
                }
        }
 
-       /* Non blocking mode for the pty master. */
+       /* Non blocking mode for all file descriptors. */
        setfd_nonblock(pty_master);
+       setfd_nonblock(STDIN_FILENO);
+       setfd_nonblock(STDOUT_FILENO);
 
        if (isatty(STDIN_FILENO)) {
                if (tty_semi_raw(STDIN_FILENO) < 0) {
-- 
2.9.4

Reply via email to