From b7b8334914fb9397a6725f3b5d2de999b0bb69ac Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Fri, 26 Apr 2019 18:06:34 +1000 Subject: [PATCH] Don't install duplicate STREAMS modules on Solaris Check if STREAMS modules are already installed on pty before installing since when compiling with XPG>=4 they will likely be installed already. Prevents hangs and duplicate lines on the terminal. bz#2945 and bz#2998, patch from djm@ --- openbsd-compat/bsd-openpty.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/openbsd-compat/bsd-openpty.c b/openbsd-compat/bsd-openpty.c index e8ad542f8..123a9be56 100644 --- a/openbsd-compat/bsd-openpty.c +++ b/openbsd-compat/bsd-openpty.c @@ -121,6 +121,15 @@ openpty(int *amaster, int *aslave, char *name, struct termios *termp, return (-1); } +# if defined(I_FIND) && defined(__SVR4) + /* + * If the streams modules have already been pushed then there + * is no more work to do here. + */ + if (ioctl(*aslave, I_FIND, "ptem") != 0) + return 0; +# endif + /* * Try to push the appropriate streams modules, as described * in Solaris pts(7).