On Mon, 06 Dec 2021 17:05:39 +0000, Visa Hankala wrote:

> This adds EVFILT_EXCEPT handler for pipes. It is a subset of
> EVFILT_READ; it triggers on EOF only. This captures the POLLHUP
> condition of pipe_poll(), used with select(2)'s exceptfds and when
> poll(2) has events without (POLLIN | POLLRDNORM | POLLOUT | POLLWRNORM).

This looks wrong.  We should only be setting exceptfds for out of
band data on sockets and ptys.

Translating POLLHUP to exceptfds was a bug introduced by the previous
select -> poll conversion in the kernel.  I'm probably responsible
for that, sorry.  This non-standard behavior has resulted in at
least one bug in the tree with ssh-keyscan being subtly broken on
other systems.

 - todd

Reply via email to