Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 4 Jun 1999 04:20: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:  <199906041120.EAA72389@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 12:11:18 +0100 (BST)

 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).
 
 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?199906041120.EAA72389>