summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/channels.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/channels.c b/src/channels.c
index 221ce8e2..ad989d78 100644
--- a/src/channels.c
+++ b/src/channels.c
@@ -1233,7 +1233,9 @@ int channel_write_common(ssh_channel channel, const void *data,
/* it's a good idea to flush the socket now */
do {
rc = ssh_handle_packets(session, timeout);
- } while(ssh_socket_buffered_write_bytes(session->socket) > 0 && timeout != 0);
+ } while(rc == SSH_OK &&
+ timeout != 0 &&
+ ssh_socket_buffered_write_bytes(session->socket) > 0);
out:
leave_function();
return (int)(origlen - len);