Index: print-udp.c =================================================================== --- print-udp.c (revision 261187) +++ print-udp.c (working copy) @@ -546,9 +546,11 @@ #ifdef INET6 else if (IP_V(ip) == 6 && ip6->ip6_plen) { /* for IPv6, UDP checksum is mandatory */ - if (TTEST2(cp[0], length)) { + udp_sum = EXTRACT_16BITS(&up->uh_sum); + if (udp_sum == 0) { + (void)printf("[invalid cksum 0] "); + } else if (TTEST2(cp[0], length)) { sum = udp6_cksum(ip6, up, length + sizeof(struct udphdr)); - udp_sum = EXTRACT_16BITS(&up->uh_sum); if (sum != 0) { (void)printf("[bad udp cksum 0x%04x -> 0x%04x!] ",