diff options
| author | Paul Eggert <eggert@cs.ucla.edu> | 2016-07-21 11:27:55 +0200 |
|---|---|---|
| committer | Paul Eggert <eggert@cs.ucla.edu> | 2016-07-21 11:29:43 +0200 |
| commit | a066fb1ceee373c982214c28206108c5fba01bf7 (patch) | |
| tree | 4a5dc8677580fdf51c485ad53641948af0c17850 | |
| parent | 9eb028f886858d6cb2a92063f5ea01c2f4b7d584 (diff) | |
| download | emacs-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.c | 4 |
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) |
