[PATCH] Cygwin: console: Fix yet another bug on input when signalled.

Takashi Yano takashi.yano@nifty.ne.jp
Tue Nov 2 08:09:40 GMT 2021


- Currently, read() returns EINTR due to a bug if signal handler
  is SIG_DFL and the process is suspended by Ctrl-Z and restarted.
  This patch fixes the issue.
---
 winsup/cygwin/fhandler_termios.cc | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/winsup/cygwin/fhandler_termios.cc b/winsup/cygwin/fhandler_termios.cc
index 012ecb356..b72f01f22 100644
--- a/winsup/cygwin/fhandler_termios.cc
+++ b/winsup/cygwin/fhandler_termios.cc
@@ -133,7 +133,8 @@ tty_min::kill_pgrp (int sig)
   siginfo_t si = {0};
   si.si_signo = sig;
   si.si_code = SI_KERNEL;
-  last_sig = sig;
+  if (sig > 0 && sig < _NSIG)
+    last_sig = sig;
 
   for (unsigned i = 0; i < pids.npids; i++)
     {
-- 
2.33.0



More information about the Cygwin-patches mailing list