[PATCH 6/8] Cygwin: pty: Fix a bug in tty_min::segpgid().

Takashi Yano takashi.yano@nifty.ne.jp
Sun Feb 13 14:39:08 GMT 2022


- In tty_min::setpgid(), a pointer to fhandler instance is casted to
  fhandler_pty_slave and accessed even if terminal is not a pty slave.
  This patch fixes the issue.
---
 winsup/cygwin/tty.cc | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/winsup/cygwin/tty.cc b/winsup/cygwin/tty.cc
index da75b8dd2..c0015aceb 100644
--- a/winsup/cygwin/tty.cc
+++ b/winsup/cygwin/tty.cc
@@ -309,7 +309,8 @@ tty_min::setpgid (int pid)
   fhandler_pty_slave *ptys = NULL;
   cygheap_fdenum cfd (false);
   while (cfd.next () >= 0 && ptys == NULL)
-    if (cfd->get_device () == getntty ())
+    if (cfd->get_device () == getntty ()
+	&& cfd->get_major () == DEV_PTYS_MAJOR)
       ptys = (fhandler_pty_slave *) (fhandler_base *) cfd;
 
   if (ptys)
-- 
2.35.1



More information about the Cygwin-patches mailing list