]> sourceware.org Git - newlib-cygwin.git/commit
Cygwin: console: Inherit pcon hand over from parent pty
authorTakashi Yano <takashi.yano@nifty.ne.jp>
Thu, 31 Oct 2024 02:11:33 +0000 (11:11 +0900)
committerTakashi Yano <takashi.yano@nifty.ne.jp>
Thu, 31 Oct 2024 06:34:56 +0000 (15:34 +0900)
commit04f386e9af997d0929e90556cce712346bef0d68
tree439d36b0cc14a58515a77bb8fc24f29569955bf0
parentae181b0ff1226cf38be8a7f03ff19bf869c87f54
Cygwin: console: Inherit pcon hand over from parent pty

There was a long-standing issue that pseudo console ownership could
not hand over from the process whose ctty is /dev/cons* rather than
/dev/pty*. This problem happens when a cygwin app starts non-cygwin
app in a pty, then the non-cygwin app starts multiple cygwin apps,
and the non-cygwin app ends before the second cygwin apps end.
In this case, the stub process of the non-cygwin app hands over the
ownership of pcon to one of the second cygwin apps, however, this
app does not hand over the ownership of pcon to another second
cygwin app. This is due to the fact that the hand-over feature is
implemented only in fhandler_pty_slave but not in fhandler_console.

With this patch, the second cygwin apps check if their console device
is inside a pseudo console, and if so, it tries to hand over the
ownership of the pseudo console to anther process that is attached
to the same pseudo console.

Addresses: https://cygwin.com/pipermail/cygwin/2024-February/255388.html
Fixes: 253352e796ff ("Cygwin: pty: Allow multiple apps to enable pseudo console simultaneously.")
Reported-by: lmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>, Hossein Nourikhah <hossein@libreoffice.org>
Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
winsup/cygwin/fhandler/console.cc
winsup/cygwin/fhandler/pty.cc
winsup/cygwin/fhandler/termios.cc
winsup/cygwin/local_includes/fhandler.h
winsup/cygwin/local_includes/tty.h
winsup/cygwin/release/3.5.5
winsup/cygwin/spawn.cc
This page took 0.030708 seconds and 5 git commands to generate.