[newlib-cygwin] Cygwin: pty: Fix a bug in tty_min::segpgid().

Takashi Yano tyan0@sourceware.org
Sun Feb 13 15:18:54 GMT 2022


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=bed1add783a13b3304b1625b962707f89e90e323

commit bed1add783a13b3304b1625b962707f89e90e323
Author: Takashi Yano <takashi.yano@nifty.ne.jp>
Date:   Sun Feb 13 05:12:18 2022 +0900

    Cygwin: pty: Fix a bug in tty_min::segpgid().
    
    - 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.

Diff:
---
 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)


More information about the Cygwin-cvs mailing list