summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2016-07-21 11:27:55 +0200
committerPaul Eggert <eggert@cs.ucla.edu>2016-07-21 11:29:43 +0200
commita066fb1ceee373c982214c28206108c5fba01bf7 (patch)
tree4a5dc8677580fdf51c485ad53641948af0c17850
parent9eb028f886858d6cb2a92063f5ea01c2f4b7d584 (diff)
downloademacs-a066fb1ceee373c982214c28206108c5fba01bf7.tar.gz
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.
-rw-r--r--src/process.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/process.c b/src/process.c
index bdbdefabb64..bc2ac451c9d 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)