Date: Fri, 4 Jun 1999 05:30:03 -0700 (PDT) From: Tony Finch <dot@dotat.at> To: freebsd-bugs@FreeBSD.org Subject: Re: kern/11988: recvmsg with a cmsghdr but no iovec is broken Message-ID: <199906041230.FAA78876@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/11988; it has been noted by GNATS. From: Tony Finch <dot@dotat.at> To: Brian Somers <brian@Awfulhak.org> Cc: Tony Finch <dot@dotat.at>, FreeBSD-gnats-submit@freebsd.org Subject: Re: kern/11988: recvmsg with a cmsghdr but no iovec is broken Date: Fri, 4 Jun 1999 13:23:29 +0100 (BST) Brian Somers writes: > > Brian Somers writes: > > > > > > One other observation (a problem I suffered with for some time); you > > > *must* have some sort of handshake to confirm that the descriptor has > > > been received. If you call close(conn) while the descriptor is still > > > in limbo (an mbuf) the descriptor will arrive at the other end ready > > > to give you EBADF next time you use it. > > > > > > A simple read(child, &ch, 1) after sendmsg() and before the close(conn) > > > and a write(3, "X", 1) after the recvmsg() will do the trick. > > > > AIUI that shouldn't be necessary: the f_count field should be > > incremented while the descriptor is in transit so close()ing it should > > not cause the resources to be released. If the receiver of the > > descriptor gets EBADF because the sender close()d it while it was in > > transit that is a bug (but a different one from the one that started > > this PR). > > I've had a poke around 'cos I recalled seeing someone else spot this. > The -current sendmsg man page mentions it in the BUGS section. -STABLE too. Do you have code to provoke it? Tony. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199906041230.FAA78876>