Bill Fenner wrote:
> sonewconn() hands sofree() a self-inconsistent socket -- so->so_head is
> set, so so must be on a queue, but sonewconn() hasn't put it on a queue yet.
> Please try this patch.

I think this can still crash (just like my patch); the problem is in
what happens when it fails to allocate memory.  Unless you set one of
the flags, it's still going to panic in the same place, I think, when
you run out of memory.

The code that the SYN-cache uses really needs to be refactored, and
seperated out.

The problem is that the delay in allocation is intentional, to permit
the cache to deal with lighter weight instances, until it decides to
actually create a connection.

There's not a clean way to do this, really, without passing the address
of the socket pointer down, and having lower level code fill it out, I
think.  8-(.

The problem is definitely based on what happens in the allocation or
protocol attach failure cases.

-- Terry

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to