diff options
author | djm@openbsd.org <djm@openbsd.org> | 2022-03-30 23:10:25 +0200 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2022-03-30 23:16:38 +0200 |
commit | d6556de1db0822c76ba2745cf5c097d9472adf7c (patch) | |
tree | 15e55e996842e9b5944a4bbf513e0710d5c48633 /channels.h | |
parent | upstream: ssh is almost out of getopt() characters; note the (diff) | |
download | openssh-d6556de1db0822c76ba2745cf5c097d9472adf7c.tar.xz openssh-d6556de1db0822c76ba2745cf5c097d9472adf7c.zip |
upstream: fix poll() spin when a channel's output fd closes without
data in the channel buffer. Introduce more exact packing of channel fds into
the pollfd array. fixes bz3405 and bz3411; ok deraadt@ markus@
OpenBSD-Commit-ID: 06740737849c9047785622ad5d472cb6a3907d10
Diffstat (limited to 'channels.h')
-rw-r--r-- | channels.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/channels.h b/channels.h index 82f33ba2f..dfb82f8ce 100644 --- a/channels.h +++ b/channels.h @@ -1,4 +1,4 @@ -/* $OpenBSD: channels.h,v 1.141 2022/01/22 00:49:34 djm Exp $ */ +/* $OpenBSD: channels.h,v 1.142 2022/03/30 21:10:25 djm Exp $ */ /* * Author: Tatu Ylonen <ylo@cs.hut.fi> @@ -138,7 +138,7 @@ struct Channel { int sock; /* sock fd */ u_int io_want; /* bitmask of SSH_CHAN_IO_* */ u_int io_ready; /* bitmask of SSH_CHAN_IO_* */ - int pollfd_offset; /* base offset into pollfd array (or -1) */ + int pfds[4]; /* pollfd entries for rfd/wfd/efd/sock */ int ctl_chan; /* control channel (multiplexed connections) */ int isatty; /* rfd is a tty */ #ifdef _AIX |