mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-02-23 17:19:33 +08:00
Previously, two bugs exist in sigtimedwait(). One is, that since _my_tls.sigwait_mask was left non-zero if the signal arrives after the timeout, sigpacket::process() would wrongly try to handle it. The other is if a timeout occurs after sigpacket::process() is called, but not completed yet, the signal handler can be called accidentally. If the signal handler is set to SIG_DFL or SIG_IGN, access violation will occur in both cases. With this patch, in sigwait_common(), check if sigwait_mask == 0 to confirm that sigpacket::process() cleared it. In this case, do not treat WAIT_TIMEOUT, but call cygwait() again to retrieve the signal. Furthermore, sigpacket::process() checks whether timeout occurs in sigwait_common() and if timeout already happens, do not treat the signal as waited. In both cases, to avoid race issues, the code is guarded by cygtls::lock(). Addresses: https://cygwin.com/pipermail/cygwin/2024-November/256762.html Fixes: 24ff42d79aab ("Cygwin: Implement sigtimedwait") Reported-by: Christian Franke <Christian.Franke@t-online.de> Reviewed-by: Corinna Vinschen <corinna@vinschen.de> Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
48 lines
1.9 KiB
Groff
48 lines
1.9 KiB
Groff
Fixes:
|
|
------
|
|
|
|
- Fix undesired behaviour of console master thread in win32-input-mode
|
|
which is supported by Windows Termainal.
|
|
Addresses: https://cygwin.com/pipermail/cygwin/2024-August/256380.html
|
|
|
|
- Fix a regression in 3.5.4 that writing to pipe extremely slows down.
|
|
Addresses: https://cygwin.com/pipermail/cygwin/2024-August/256398.html
|
|
|
|
- Fix pread() and pwrite() EBADF error after fork().
|
|
Addresses: https://sourceware.org/pipermail/cygwin/2024-September/256468.html
|
|
|
|
- Fix timer_delete() return value which always indicated failure.
|
|
|
|
- Fix lockf() error which occurs when adding a new lock over multiple
|
|
locks.
|
|
Addresses: https://cygwin.com/pipermail/cygwin/2024-October/256528.html
|
|
|
|
- Make lockf() return ENOLCK when the number of locks exceeds
|
|
MAX_LOCKF_CNT rather than printing a warning message.
|
|
Addresses: https://cygwin.com/pipermail/cygwin/2024-October/256528.html
|
|
|
|
- Make console inherit hand over of pseudo console ownership from
|
|
parent pty.
|
|
Addresses: https://cygwin.com/pipermail/cygwin/2024-February/255388.html
|
|
|
|
- Restore pipe blocking mode for non-cygwin apps.
|
|
Addresses: https://github.com/git-for-windows/git/issues/5115
|
|
|
|
- Fix a problem that signal handler destroys the FPU context.
|
|
Addresses: https://cygwin.com/pipermail/cygwin/2024-October/256503.html
|
|
|
|
- Fix type of pthread_sigqueue() first parameter to match Linux.
|
|
Addresses: https://cygwin.com/pipermail/cygwin/2024-September/256439.html
|
|
|
|
- Fix potential stack corruption in rmdir() in a border case.
|
|
Addresses: https://cygwin.com/pipermail/cygwin/2024-November/256774.html
|
|
|
|
- Fix access violation in lf_clearlock() called from flock().
|
|
Addresses: https://cygwin.com/pipermail/cygwin/2024-November/256750.html
|
|
|
|
- Fix NtCreateEvent() error in create_lock_ob() called from flock().
|
|
Addresses: https://cygwin.com/pipermail/cygwin/2024-November/256750.html
|
|
|
|
- Fix segfault in sigtimedwait() when using timeout.
|
|
Addresses: https://cygwin.com/pipermail/cygwin/2024-November/256762.html
|