bug & patch in ServerAliveInterval (openssh 4.3-p2)

Darren Tucker dtucker at zip.com.au
Thu May 4 13:28:38 EST 2006

On Sat, Apr 22, 2006 at 08:02:47PM +0300, catamus wrote:
> I have found that ServerAliveInterval & ServerAliveCountMax have
> some bug. Basically the ssh-alive check function (that verify the
> peer is alive) is called only if no data at all gets into ssh (when it 
> should work only for server channel).I am pretty sure developers know
> about this ..anyway I have tried to fix this issue. Here is the patch:

Could you please give an example of the circumstances under which this
might happen?  Repeatedly banging on the keyboard generating traffic
on stdin?

I'm not sure the patch is quite right, though.

> +       if(FD_ISSET(connection_out, *readsetp)) {
> +               tv.tv_sec = 0;
> +               tv.tv_usec = 0;

This doesn't look right... it's checking if the connection out is readable?

Maybe that should be this?

	if (FD_ISSET(connection_in, *readsetp) ||
	    FD_ISSET(connection_out, *writesetp))

Darren Tucker (dtucker at zip.com.au)
GPG key 8FF4FA69 / D9A3 86E9 7EEE AF4B B2D4  37C9 C982 80C7 8FF4 FA69
    Good judgement comes with experience. Unfortunately, the experience
usually comes from bad judgement.

More information about the openssh-unix-dev mailing list