Kernel panic on FreeBSD 9.0-beta2

K. Macy kmacy at freebsd.org
Mon Sep 26 14:12:56 UTC 2011


Sorry, didn't look at the images (limited bw), I've seen something
like this before in timewait. This "can't happen" with UDP so will be
interested in learning more about the bug.

On Mon, Sep 26, 2011 at 4:02 PM, Arnaud Lacombe <lacombar at gmail.com> wrote:
> Hi,
>
> On Mon, Sep 26, 2011 at 5:12 AM, K. Macy <kmacy at freebsd.org> wrote:
>>
>>
>> On Monday, September 26, 2011, Adrian Chadd <adrian at freebsd.org> wrote:
>>> On 26 September 2011 13:41, Arnaud Lacombe <lacombar at gmail.com> wrote:
>>>>  /*
>>>>   * XXX
>>>>   * This entire block sorely needs a rewrite.
>>>>   */
>>>>        if (t &&
>>>>            ((t->inp_flags & INP_TIMEWAIT) == 0) &&
>>>>            (so->so_type != SOCK_STREAM ||
>>>>             ntohl(t->inp_faddr.s_addr) == INADDR_ANY) &&
>>>>            (ntohl(sin->sin_addr.s_addr) != INADDR_ANY ||
>>>>             ntohl(t->inp_laddr.s_addr) != INADDR_ANY ||
>>>>             (t->inp_socket->so_options &
>>>>           SO_REUSEPORT) == 0) &&
>>>>            (inp->inp_cred->cr_uid !=
>>>>             t->inp_cred->cr_uid))
>>>>          return (EADDRINUSE);
>>>>      }
>>>>
>>>> more specifically, `t->inp_socket' is NULL. The top comment may not be
>>>> relevant, as it's been here for the past 8 years.
>>>
>>> Why would t->inp_socket be NULL at this point?
>>
>> TIME_WAIT ...
>>
> on UDP socket ?
>
>  - Arnaud
>


More information about the freebsd-net mailing list