From: Takahiro Kambe Date: 2011-07-23T09:26:52+09:00 Subject: [ruby-dev:44205] Re: [Ruby 1.9 - Bug #5075][Assigned] invalid *fdp in Mac OS X and FreeBSD over recvmsg with SCM_RIGHTS In message on Sat, 23 Jul 2011 01:37:35 +0900, Tanaka Akira wrote: >> Mac OS X と FreeBSD にて、存在しない fd を close してしまう問題について、 >> 現在 r32598 で応急処置が施されていますが、根本的な原因について、 >> sys/kern/uipc_socket.c を見るに、 >> http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/kern/uipc_socket.c?rev=1.340.2.6.2.1;content-type=text%2Fplain;only_with_tag=RELENG_8_2_0_RELEASE >> >> * Process one or more MT_CONTROL mbufs present before any data mbufs >> * in the first mbuf chain on the socket buffer. If MSG_PEEK, we >> * just copy the data; if !MSG_PEEK, we call into the protocol to >> * perform externalization (or freeing if controlp == NULL). >> >> とあるので、recvmsg に MSG_PEEK を与えた場合は invalid なものが返ってくると思うのですが。 > > おぉ、素晴らしい。 このコメントは NetBSD current にもあります。FreeBSDから2008年4月14日に 取り込まれていて、リリースでは NetBSD 5には含まれています。 以上、just FYI. -- 神戸 隆博 / Takahiro Kambe