In a couple of places we were checking the packet size against
sizeof(struct ip6_hdr) instead of *offp, but the latter includes
extension headers which we need to skip past to get to the protocol
header. carp_input() handles this properly, copy what it does.
While here, convert carp_input() to use unsigned variables for various
lengths. This is more correct and consistent with carp6_input().
Reported by: Yehyeong Lee (yhlee), yhlee@isslab.korea.ac.kr (no affiliation)
Fixes: 37115154672f ("carp: support VRRPv3")