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

ruby-changes:9340

From: yugui <ko1@a...>
Date: Fri, 19 Dec 2008 20:37:46 +0900 (JST)
Subject: [ruby-changes:9340] Ruby:r20878 (ruby_1_9_1): merges r20847 from trunk into ruby_1_9_1.

yugui	2008-12-19 20:37:25 +0900 (Fri, 19 Dec 2008)

  New Revision: 20878

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=20878

  Log:
    merges r20847 from trunk into ruby_1_9_1.
    * ext/socket/socket.c (unix_recv_io): relax msg_controllen error
      check.

  Modified files:
    branches/ruby_1_9_1/ChangeLog
    branches/ruby_1_9_1/ext/socket/socket.c

Index: ruby_1_9_1/ChangeLog
===================================================================
--- ruby_1_9_1/ChangeLog	(revision 20877)
+++ ruby_1_9_1/ChangeLog	(revision 20878)
@@ -1,3 +1,8 @@
+Wed Dec 17 19:39:44 2008  Tanaka Akira  <akr@f...>
+
+	* ext/socket/socket.c (unix_recv_io): relax msg_controllen error
+	  check.
+
 Wed Dec 17 19:37:30 2008  Tanaka Akira  <akr@f...>
 
 	* ext/pty/extconf.rb: check util.h for OpenBSD.
Index: ruby_1_9_1/ext/socket/socket.c
===================================================================
--- ruby_1_9_1/ext/socket/socket.c	(revision 20877)
+++ ruby_1_9_1/ext/socket/socket.c	(revision 20878)
@@ -2118,9 +2118,14 @@
 	rb_sys_fail("recvmsg(2)");
 
 #if FD_PASSING_BY_MSG_CONTROL
-    if (arg.msg.msg_controllen != CMSG_SPACE(sizeof(int))) {
+    if (arg.msg.msg_controllen < CMSG_LEN(sizeof(int))) {
 	rb_raise(rb_eSocket,
-		 "file descriptor was not passed (msg_controllen=%d, %d expected)",
+		 "file descriptor was not passed (msg_controllen=%d smaller than CMSG_LEN(sizeof(int))=%d)",
+		 (int)arg.msg.msg_controllen, (int)CMSG_LEN(sizeof(int)));
+    }
+    if (CMSG_SPACE(sizeof(int)) < arg.msg.msg_controllen) {
+	rb_raise(rb_eSocket,
+		 "file descriptor was not passed (msg_controllen=%d bigger than CMSG_SPACE(sizeof(int))=%d)",
 		 (int)arg.msg.msg_controllen, (int)CMSG_SPACE(sizeof(int)));
     }
     if (cmsg.hdr.cmsg_len != CMSG_LEN(sizeof(int))) {

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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