CVSROOT:        /cvs
Module name:    src
Changes by:     [email protected]    2011/10/16 15:07:19

Modified files:
        sys/netinet    : ip_carp.c 

Log message:
Use m_pullup() instead of IP6_EXTHDR_GET() to get the carp header
in the v6 input path. IP6_EXTHDR_GET() internally uses m_pulldown(),
which might return a pointer to a different mbuf in the chain.
In this case, carp_cksum() will be called with the wrong mbuf.
This fixes occasional checksum mismatches.
Problem found and initial fix by stsp@
OK stsp@

Reply via email to