From: djm@openbsd.org Date: Thu, 30 Jan 2020 07:20:57 +0000 (+0000) Subject: upstream: check the return value of ssh_packet_write_poll() and X-Git-Tag: V_8_2_P1~35 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=65d6fd0a8a6f31c3ddf0c1192429a176575cf701;p=thirdparty%2Fopenssh-portable.git upstream: check the return value of ssh_packet_write_poll() and call sshpkt_fatal() if it fails; avoid potential busy-loop under some circumstances. Based on patch by Mike Frysinger; ok dtucker@ OpenBSD-Commit-ID: c79fe5cf4f0cd8074cb6db257c1394d5139408ec --- diff --git a/clientloop.c b/clientloop.c index 170155442..2590962b1 100644 --- a/clientloop.c +++ b/clientloop.c @@ -1,4 +1,4 @@ -/* $OpenBSD: clientloop.c,v 1.337 2020/01/29 08:17:49 djm Exp $ */ +/* $OpenBSD: clientloop.c,v 1.338 2020/01/30 07:20:57 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1392,8 +1392,12 @@ client_loop(struct ssh *ssh, int have_pty, int escape_char_arg, * Send as much buffered packet data as possible to the * sender. */ - if (FD_ISSET(connection_out, writeset)) - ssh_packet_write_poll(ssh); + if (FD_ISSET(connection_out, writeset)) { + if ((r = ssh_packet_write_poll(ssh)) != 0) { + sshpkt_fatal(ssh, r, + "%s: ssh_packet_write_poll", __func__); + } + } /* * If we are a backgrounded control master, and the