ruby-changes:33672
From: usa <ko1@a...>
Date: Wed, 30 Apr 2014 16:37:45 +0900 (JST)
Subject: [ruby-changes:33672] usa:r45753 (ruby_2_0_0): merge revision(s) 45471: [Backport #9688]
usa 2014-04-30 16:37:38 +0900 (Wed, 30 Apr 2014) New Revision: 45753 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=45753 Log: merge revision(s) 45471: [Backport #9688] * 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] Modified directories: branches/ruby_2_0_0/ Modified files: branches/ruby_2_0_0/ChangeLog branches/ruby_2_0_0/version.h branches/ruby_2_0_0/win32/win32.c Index: ruby_2_0_0/ChangeLog =================================================================== --- ruby_2_0_0/ChangeLog (revision 45752) +++ ruby_2_0_0/ChangeLog (revision 45753) @@ -1,3 +1,11 @@ https://github.com/ruby/ruby/blob/trunk/ruby_2_0_0/ChangeLog#L1 +Wed Apr 30 16:37:16 2014 NAKAMURA Usaku <usa@r...> + + * 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] + Wed Apr 30 16:33:57 2014 Eric Wong <e@8...> * time.c (time_mload): freeze and preserve marshal-loaded time zone Index: ruby_2_0_0/win32/win32.c =================================================================== --- ruby_2_0_0/win32/win32.c (revision 45752) +++ ruby_2_0_0/win32/win32.c (revision 45753) @@ -2917,6 +2917,7 @@ rb_w32_accept(int s, struct sockaddr *ad https://github.com/ruby/ruby/blob/trunk/ruby_2_0_0/win32/win32.c#L2917 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)); @@ -3457,6 +3458,8 @@ open_ifs_socket(int af, int type, int pr https://github.com/ruby/ruby/blob/trunk/ruby_2_0_0/win32/win32.c#L3458 } 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); @@ -3690,6 +3693,7 @@ socketpair_internal(int af, int type, in https://github.com/ruby/ruby/blob/trunk/ruby_2_0_0/win32/win32.c#L3693 r = accept(svr, addr, &len); if (r == INVALID_SOCKET) break; + SetHandleInformation((HANDLE)r, HANDLE_FLAG_INHERIT, 0); ret = 0; } while (0); Index: ruby_2_0_0/version.h =================================================================== --- ruby_2_0_0/version.h (revision 45752) +++ ruby_2_0_0/version.h (revision 45753) @@ -1,6 +1,6 @@ https://github.com/ruby/ruby/blob/trunk/ruby_2_0_0/version.h#L1 #define RUBY_VERSION "2.0.0" #define RUBY_RELEASE_DATE "2014-04-30" -#define RUBY_PATCHLEVEL 473 +#define RUBY_PATCHLEVEL 474 #define RUBY_RELEASE_YEAR 2014 #define RUBY_RELEASE_MONTH 4 Property changes on: ruby_2_0_0 ___________________________________________________________________ Modified: svn:mergeinfo Merged /trunk:r45471 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/