Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: crash in in6_cksum
On Tue, 26 Feb 2008, Tatoku Ogaito wrote:
> >> In Message <080226083754.M0226599%mirage.ceres.dti.ne.jp@localhost>
> at Tue, 26 Feb 2008 08:37:54 +0900
> Izumi Tsutsui <tsutsui%ceres.dti.ne.jp@localhost> wrote:
>
> > I also see the same panic with re(4) on i386 and I'm using
> > in6_cksum.c rev 1.22. (though I don't use ipv6)
>
> In my case, I use ath(4) at cardbus and wm(4) at pci on i386.
[probably not the interface driver then]
> A bunch of KASSERTs reveal the assertion fails at the second
> KASSERT in the following piece of code, which begins with the
> line 346 in revision 1.113.
So, it seems that pfil_run_hooks() has modified the mbuf chain and left it
without the complete ip6_hdr addressable, and I'm guessing that since
ip6_input() already made some effort to pull it up that this is unwanted
behaviour (though pfil(9) does not say so).
(I think that the previous versions of in6_cksum() also required this but
did no validation, I don't know if that means the calculations were
sometimes wrong.. ?)
Is there a way to know which hooks are being run?
> # In my kernel, I set PFIL_HOOKS and FAST_IPSEC.
does this mean that FAST_IPSEC is the packet filter?
The only places I see hooks being added are in:
net/if_bridge.c
net/if_pppoe.c
dist/pf/net/pf_ioctl.c
dist/ipf/netinet/ip_fil_netbsd.c
I don't really know what the hooks are supposed to be doing, but some of
them use m_makewriteable() which does not guarantee that data is left
contiguous.
iain
Home |
Main Index |
Thread Index |
Old Index