From e06833b46bba43f95d8c6fb888d72777f4938a39 Mon Sep 17 00:00:00 2001 From: Ben Harris Date: Tue, 17 May 2016 16:28:56 +0200 Subject: [PATCH] Don't send SSH_MSG_CHANNEL_WINDOW_ADJUST with a zero adjustment. --- ssh.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ssh.c b/ssh.c index 51605ab7..bd202add 100644 --- a/ssh.c +++ b/ssh.c @@ -7883,7 +7883,8 @@ static void ssh_channel_unthrottle(struct ssh_channel *c, int bufsize) buflimit = 0; else buflimit = c->v.v2.locmaxwin; - ssh2_set_window(c, bufsize < buflimit ? buflimit - bufsize : 0); + if (bufsize < buflimit) + ssh2_set_window(c, buflimit - bufsize); } if (c->throttling_conn && bufsize <= buflimit) { c->throttling_conn = 0; @@ -8115,8 +8116,8 @@ static void ssh2_msg_channel_data(Ssh ssh, struct Packet *pktin) * need to adjust the window if the server's * sent excess data. */ - ssh2_set_window(c, bufsize < c->v.v2.locmaxwin ? - c->v.v2.locmaxwin - bufsize : 0); + if (bufsize < c->v.v2.locmaxwin) + ssh2_set_window(c, c->v.v2.locmaxwin - bufsize); /* * If we're either buffering way too much data, or if we're * buffering anything at all and we're in "simple" mode,