In article <200304182017.h3IKH4ng019821@xxxxxxxxxxxxxxxxxxxx> (at Fri, 18 Apr
2003 15:17:04 -0500), latten@xxxxxxxxxxxxxx says:
> incoming packet fails, result is an ICMPv6 Parameter problem
> of Unknown-Next-Header, instead of just dropping packet. This
> is because xfrm6_rcv() expects an unsigned-8-bit return value
> from the input handler, i.e. ah6_input() or esp6_input(). But handler
> returns a signed int (-EINVAL) that seems to be getting converted into
> a "u8" via 2's complement, because ah6_input() says it is returning
> -EINVAL/-22, but xfrm6_rcv() says it got a return value of 234,
> which it believes to be valid and passes to ip6_input() who thinks it is
> the next header.
> I modified ah6_input() and esp6_input() to return zero instead of -EINVAL
> in the fix below. I tested it and it works.
just change u8 nexthdr = 0 to int nexthdr = 0, in xfrm6_rcv() is fine,
Hideaki YOSHIFUJI @ USAGI Project <yoshfuji@xxxxxxxxxxxxxx>
GPG FP: 9022 65EB 1ECF 3AD1 0BDF 80D8 4807 F894 E062 0EEA