Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 21 May 2006 19:04:57 +0100 (BST)
From:      Robert Watson <rwatson@FreeBSD.org>
To:        Maxim Konovalov <maxim@macomnet.ru>
Cc:        current@FreeBSD.org
Subject:   Re: HEADS UP: socket and pcb reference changes entering tree today
Message-ID:  <20060521190358.G8068@fledge.watson.org>
In-Reply-To: <20060521215823.H6324@mp2.macomnet.net>
References:  <20060317141627.W2181@fledge.watson.org> <20060329100839.V19236@fledge.watson.org> <20060401102918.P79188@fledge.watson.org> <20060401170554.R82503@fledge.watson.org> <20060402233436.P76562@fledge.watson.org> <20060515025600.U70399@mp2.macomnet.net> <20060521185034.K8068@fledge.watson.org> <20060521215823.H6324@mp2.macomnet.net>

next in thread | previous in thread | raw e-mail | index | archive | help

On Sun, 21 May 2006, Maxim Konovalov wrote:

>> This looks good in terms of pcb structure, but you should acquire SOCK_LOCK 
>> around the so_state manipulation.  To prevent races, I suggest doing it 
>> while also holding the INP lock in the center of the locking sets from the 
>> inpcb. There are some other remaining bugs in the raw socket code elsewhere 
>> also, I think.
>
> I "copied" this code from udp_usrreq.c::udp_disconnect().  There is no such 
> lock.  Is it a bug too?

Yes.

I have some intuitions about why the datagram protocols manually frob the 
disconnected flag rather than calling soisdisconnected(), but am generally 
unsure that this is the right thing.

Robert N M Watson



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060521190358.G8068>