In message <CANjopZGqKbM4O6vMkOHrZcD1YLLOJ86-hDHsK3C+px9kdrW4Eg / mail.gmail.com>
	on Sat, 23 Jul 2011 01:37:35 +0900,
	Tanaka Akira <akr / fsij.org> 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