[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]