| Summary: | after SIGCHLD is received, sshd may get blocked | ||
|---|---|---|---|
| Product: | Portable OpenSSH | Reporter: | Charles Samuels <openssl> |
| Component: | sshd | Assignee: | Assigned to nobody <unassigned-bugs> |
| Status: | CLOSED FIXED | ||
| Severity: | normal | CC: | djm |
| Priority: | P5 | ||
| Version: | 8.4p1 | ||
| Hardware: | Other | ||
| OS: | Linux | ||
|
Description
Charles Samuels
2021-10-29 06:59:43 AEDT
This was fixed two releases ago, in OpenSSH 8.7: commit 4bdf7a04797a0ea1c431a9d54588417c29177d19 Author: dtucker@openbsd.org <dtucker@openbsd.org> Date: Fri Jun 25 03:38:17 2021 +0000 upstream: Replace SIGCHLD/notify_pipe kludge with pselect. Previously sshd's SIGCHLD handler would wake up select() by writing a byte to notify_pipe. We can remove this by blocking SIGCHLD, checking for child terminations then passing the original signal mask through to pselect. This ensures that the pselect will immediately wake up if a child terminates between wait()ing on them and the pselect. In -portable, for platforms that do not have pselect the kludge is still there but is hidden behind a pselect interface. Based on other changes for bz#2158, ok djm@ OpenBSD-Commit-ID: 202c85de0b3bdf1744fe53529a05404c5480d813 closing bugs resolved before openssh-8.9 |