Check uncompressed ipv6 packets length

If a stray packet happens to come in with a first data byte that matches
that of an uncompressed IPv6 packet, the code was just taking that at
face value and passing it up the stack. Now it at least checks that it
is long enought to contain a ipv6 header. This prevents the length of
the packet from becoming screwed up when the payload length is
calculated later on.