mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* win32/win32.c (rb_w32_accept, open_ifs_socket, socketpair_internal):
reset inherit flag of socket to avoid unintentional inheritance of socket. note that the return value of SetHandleInformation() is not verified intentionally because old Windows may return an error. [Bug #9688] [ruby-core:61754] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45471 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
97a3464b6a
commit
38c3ba2fa5
2 changed files with 12 additions and 0 deletions
|
@ -1,3 +1,11 @@
|
|||
Sun Mar 30 23:39:26 2014 NAKAMURA Usaku <usa@ruby-lang.org>
|
||||
|
||||
* win32/win32.c (rb_w32_accept, open_ifs_socket, socketpair_internal):
|
||||
reset inherit flag of socket to avoid unintentional inheritance of
|
||||
socket. note that the return value of SetHandleInformation() is not
|
||||
verified intentionally because old Windows may return an error.
|
||||
[Bug #9688] [ruby-core:61754]
|
||||
|
||||
Sat Mar 29 13:04:22 2014 Koichi Sasada <ko1@atdot.net>
|
||||
|
||||
* gc.c (gc_before_sweep): cap `malloc_limit' to
|
||||
|
|
|
@ -3017,6 +3017,7 @@ rb_w32_accept(int s, struct sockaddr *addr, int *addrlen)
|
|||
if (fd != -1) {
|
||||
r = accept(TO_SOCKET(s), addr, addrlen);
|
||||
if (r != INVALID_SOCKET) {
|
||||
SetHandleInformation((HANDLE)r, HANDLE_FLAG_INHERIT, 0);
|
||||
MTHREAD_ONLY(EnterCriticalSection(&(_pioinfo(fd)->lock)));
|
||||
_set_osfhnd(fd, r);
|
||||
MTHREAD_ONLY(LeaveCriticalSection(&_pioinfo(fd)->lock));
|
||||
|
@ -3557,6 +3558,8 @@ open_ifs_socket(int af, int type, int protocol)
|
|||
}
|
||||
if (out == INVALID_SOCKET)
|
||||
out = WSASocket(af, type, protocol, NULL, 0, 0);
|
||||
if (out != INVALID_SOCKET)
|
||||
SetHandleInformation((HANDLE)out, HANDLE_FLAG_INHERIT, 0);
|
||||
}
|
||||
|
||||
free(proto_buffers);
|
||||
|
@ -3790,6 +3793,7 @@ socketpair_internal(int af, int type, int protocol, SOCKET *sv)
|
|||
r = accept(svr, addr, &len);
|
||||
if (r == INVALID_SOCKET)
|
||||
break;
|
||||
SetHandleInformation((HANDLE)r, HANDLE_FLAG_INHERIT, 0);
|
||||
|
||||
ret = 0;
|
||||
} while (0);
|
||||
|
|
Loading…
Add table
Reference in a new issue