From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Ken Brown Newsgroups: gmane.emacs.devel Subject: Re: [Emacs-diffs] master a066fb1: Fix use-after-close in connect_network_socket Date: Mon, 1 Aug 2016 07:43:01 -0400 Message-ID: References: <20160721092948.2203.76649@vcs.savannah.gnu.org> <20160721092948.D1106220159@vcs.savannah.gnu.org> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Trace: blaine.gmane.org 1470051819 29876 80.91.229.8 (1 Aug 2016 11:43:39 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 1 Aug 2016 11:43:39 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 To: emacs-devel@gnu.org, Paul Eggert Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Aug 01 13:43:25 2016 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bUBcz-0007do-Lw for ged-emacs-devel@m.gmane.org; Mon, 01 Aug 2016 13:43:25 +0200 Original-Received: from localhost ([::1]:49540 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bUBcv-0005Jh-Td for ged-emacs-devel@m.gmane.org; Mon, 01 Aug 2016 07:43:21 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:43280) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bUBcq-0005Ef-4u for emacs-devel@gnu.org; Mon, 01 Aug 2016 07:43:17 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bUBcl-0005Yq-5X for emacs-devel@gnu.org; Mon, 01 Aug 2016 07:43:15 -0400 Original-Received: from limerock04.mail.cornell.edu ([128.84.13.244]:38171) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bUBcl-0005YG-1B for emacs-devel@gnu.org; Mon, 01 Aug 2016 07:43:11 -0400 X-CornellRouted: This message has been Routed already. Original-Received: from authusersmtp.mail.cornell.edu (granite4.serverfarm.cornell.edu [10.16.197.9]) by limerock04.mail.cornell.edu (8.14.4/8.14.4_cu) with ESMTP id u71Bgwfx025337; Mon, 1 Aug 2016 07:42:58 -0400 Original-Received: from [192.168.1.5] (mta-68-175-148-36.twcny.rr.com [68.175.148.36] (may be forged)) (authenticated bits=0) by authusersmtp.mail.cornell.edu (8.14.4/8.12.10) with ESMTP id u71BgvNk011009 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Mon, 1 Aug 2016 07:42:57 -0400 In-Reply-To: <20160721092948.D1106220159@vcs.savannah.gnu.org> X-PMX-Cornell-Gauge: Gauge=XXXXX X-PMX-CORNELL-AUTH-RESULTS: dkim-out=none; X-MIME-Autoconverted: from 8bit to quoted-printable by limerock04.mail.cornell.edu id u71Bgwfx025337 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 128.84.13.244 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:206298 Archived-At: On 7/21/2016 5:29 AM, Paul Eggert wrote: > branch: master > commit a066fb1ceee373c982214c28206108c5fba01bf7 > Author: Paul Eggert > Commit: Paul Eggert > > Fix use-after-close in connect_network_socket > > * src/process.c (connect_network_socket): Don=E2=80=99t use > external_sock_fd after closing it. Problem found by Coverity Scan. > --- > src/process.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/src/process.c b/src/process.c > index bdbdefa..bc2ac45 100644 > --- a/src/process.c > +++ b/src/process.c > @@ -3185,6 +3185,8 @@ connect_network_socket (Lisp_Object proc, Lisp_Ob= ject addrinfos, > xerrno =3D errno; > emacs_close (s); > s =3D -1; > + if (socket_to_use < 0) > + break; > continue; > } > } > @@ -3312,6 +3314,8 @@ connect_network_socket (Lisp_Object proc, Lisp_Ob= ject addrinfos, > specpdl_ptr =3D specpdl + count1; > emacs_close (s); > s =3D -1; > + if (socket_to_use < 0) > + break; > > #ifdef WINDOWSNT > if (xerrno =3D=3D EINTR) This commit causes two network-streams-tests failures on Cygwin: FAILED echo-server-with-dns FAILED echo-server-with-localhost Did you perhaps get the condition (socket_to_use < 0) backwards? If=20 socket_to_use < 0, then it is not external_sock_fd that has been closed. Ken