* Re: [Emacs-diffs] master a066fb1: Fix use-after-close in connect_network_socket [not found] ` <20160721092948.D1106220159@vcs.savannah.gnu.org> @ 2016-08-01 11:43 ` Ken Brown 2016-08-02 7:32 ` Paul Eggert 0 siblings, 1 reply; 2+ messages in thread From: Ken Brown @ 2016-08-01 11:43 UTC (permalink / raw To: emacs-devel, Paul Eggert On 7/21/2016 5:29 AM, Paul Eggert wrote: > branch: master > commit a066fb1ceee373c982214c28206108c5fba01bf7 > Author: Paul Eggert <eggert@cs.ucla.edu> > Commit: Paul Eggert <eggert@cs.ucla.edu> > > Fix use-after-close in connect_network_socket > > * src/process.c (connect_network_socket): Don’t 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_Object addrinfos, > xerrno = errno; > emacs_close (s); > s = -1; > + if (socket_to_use < 0) > + break; > continue; > } > } > @@ -3312,6 +3314,8 @@ connect_network_socket (Lisp_Object proc, Lisp_Object addrinfos, > specpdl_ptr = specpdl + count1; > emacs_close (s); > s = -1; > + if (socket_to_use < 0) > + break; > > #ifdef WINDOWSNT > if (xerrno == 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 socket_to_use < 0, then it is not external_sock_fd that has been closed. Ken ^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [Emacs-diffs] master a066fb1: Fix use-after-close in connect_network_socket 2016-08-01 11:43 ` [Emacs-diffs] master a066fb1: Fix use-after-close in connect_network_socket Ken Brown @ 2016-08-02 7:32 ` Paul Eggert 0 siblings, 0 replies; 2+ messages in thread From: Paul Eggert @ 2016-08-02 7:32 UTC (permalink / raw To: Ken Brown, emacs-devel [-- Attachment #1: Type: text/plain, Size: 247 bytes --] Ken Brown wrote: > Did you perhaps get the condition (socket_to_use < 0) backwards? If > socket_to_use < 0, then it is not external_sock_fd that has been closed. Yes, thanks, I think you're right. I installed the attached on master to fix that. [-- Attachment #2: 0001-Fix-use-after-close-in-connect_network_socket.patch --] [-- Type: text/x-diff, Size: 1095 bytes --] From 10ae6903134d0c501ede683e698a4f0a36cd6297 Mon Sep 17 00:00:00 2001 From: Paul Eggert <eggert@cs.ucla.edu> Date: Tue, 2 Aug 2016 03:31:04 -0400 Subject: [PATCH] Fix use-after-close in connect_network_socket * src/process.c (connect_network_socket): Reverse sense of previous fix. Problem reported by Ken Brown in: http://lists.gnu.org/archive/html/emacs-devel/2016-08/msg00004.html --- src/process.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/process.c b/src/process.c index bc2ac45..5e48e43 100644 --- a/src/process.c +++ b/src/process.c @@ -3185,7 +3185,7 @@ connect_network_socket (Lisp_Object proc, Lisp_Object addrinfos, xerrno = errno; emacs_close (s); s = -1; - if (socket_to_use < 0) + if (0 <= socket_to_use) break; continue; } @@ -3314,7 +3314,7 @@ connect_network_socket (Lisp_Object proc, Lisp_Object addrinfos, specpdl_ptr = specpdl + count1; emacs_close (s); s = -1; - if (socket_to_use < 0) + if (0 <= socket_to_use) break; #ifdef WINDOWSNT -- 2.5.5 ^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2016-08-02 7:32 UTC | newest] Thread overview: 2+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <20160721092948.2203.76649@vcs.savannah.gnu.org> [not found] ` <20160721092948.D1106220159@vcs.savannah.gnu.org> 2016-08-01 11:43 ` [Emacs-diffs] master a066fb1: Fix use-after-close in connect_network_socket Ken Brown 2016-08-02 7:32 ` Paul Eggert
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.