Dropping leading zeros doesn't make sense for checksums. Only odd case
is print-mobile.c which previously printed checksums as decimal.
print-gre.c also sticks out as the only one that prepends "0x".

- Matthew Martin


Index: usr.sbin/tcpdump/print-carp.c
===================================================================
RCS file: /cvs/src/usr.sbin/tcpdump/print-carp.c,v
retrieving revision 1.6
diff -u -p -r1.6 print-carp.c
--- usr.sbin/tcpdump/print-carp.c       27 Oct 2009 23:59:55 -0000      1.6
+++ usr.sbin/tcpdump/print-carp.c       10 Nov 2015 08:39:03 -0000
@@ -66,7 +66,7 @@ carp_print(register const u_char *bp, re
            bp[1], bp[5], bp[2], bp[4]);
        if (vflag) {
                if (TTEST2(bp[0], len) && in_cksum((const u_short*)bp, len, 0))
-                       printf(" (bad carp cksum %x!)",
+                       printf(" (bad carp cksum %04x!)",
                                EXTRACT_16BITS(&bp[6]));
        }
        return;
Index: usr.sbin/tcpdump/print-gre.c
===================================================================
RCS file: /cvs/src/usr.sbin/tcpdump/print-gre.c,v
retrieving revision 1.11
diff -u -p -r1.11 print-gre.c
--- usr.sbin/tcpdump/print-gre.c        5 Nov 2015 11:55:21 -0000       1.11
+++ usr.sbin/tcpdump/print-gre.c        10 Nov 2015 08:39:03 -0000
@@ -121,7 +121,7 @@ gre_print_0(const u_char *bp, u_int leng
                if (len < 2)
                        goto trunc;
                if (vflag)
-                       printf("sum 0x%x ", EXTRACT_16BITS(bp));
+                       printf("sum 0x%04x ", EXTRACT_16BITS(bp));
                bp += 2;
                len -= 2;
 
Index: usr.sbin/tcpdump/print-icmp.c
===================================================================
RCS file: /cvs/src/usr.sbin/tcpdump/print-icmp.c,v
retrieving revision 1.25
diff -u -p -r1.25 print-icmp.c
--- usr.sbin/tcpdump/print-icmp.c       16 Jan 2015 06:40:21 -0000      1.25
+++ usr.sbin/tcpdump/print-icmp.c       10 Nov 2015 08:39:03 -0000
@@ -378,7 +378,7 @@ icmp_print(const u_char *bp, u_int lengt
                        sum = in_cksum((const u_short *)dp, length, 0);
                        if (sum != 0) {
                                icmp_sum = EXTRACT_16BITS(&dp->icmp_cksum);
-                               (void)printf(" [bad icmp cksum %x! -> %x]", 
icmp_sum,
+                               (void)printf(" [bad icmp cksum %04x! -> %04x]", 
icmp_sum,
                                    in_cksum_shouldbe(icmp_sum, sum));
                        }
                        else
Index: usr.sbin/tcpdump/print-icmp6.c
===================================================================
RCS file: /cvs/src/usr.sbin/tcpdump/print-icmp6.c,v
retrieving revision 1.16
diff -u -p -r1.16 print-icmp6.c
--- usr.sbin/tcpdump/print-icmp6.c      2 Nov 2015 17:48:33 -0000       1.16
+++ usr.sbin/tcpdump/print-icmp6.c      10 Nov 2015 08:39:03 -0000
@@ -489,7 +489,7 @@ icmp6_print(const u_char *bp, u_int leng
                        sum = icmp6_cksum(ip, dp, length);
                        if (sum != 0) {
                                icmp6_sum = EXTRACT_16BITS(&dp->icmp6_cksum);
-                               printf(" [bad icmp6 cksum %x! -> %x]", 
icmp6_sum,
+                               printf(" [bad icmp6 cksum %04x! -> %04x]", 
icmp6_sum,
                                    in_cksum_shouldbe(icmp6_sum, sum));
                        } else
                                printf(" [icmp6 cksum ok]");
Index: usr.sbin/tcpdump/print-ip.c
===================================================================
RCS file: /cvs/src/usr.sbin/tcpdump/print-ip.c,v
retrieving revision 1.44
diff -u -p -r1.44 print-ip.c
--- usr.sbin/tcpdump/print-ip.c 21 Aug 2015 02:07:32 -0000      1.44
+++ usr.sbin/tcpdump/print-ip.c 10 Nov 2015 08:39:03 -0000
@@ -215,7 +215,7 @@ igmp_print(register const u_char *bp, re
                        sum = (sum & 0xffff) + (sum >> 16);
                sum = 0xffff & ~sum;
                if (sum != 0)
-                       printf(" bad igmp cksum %x!", EXTRACT_16BITS(&bp[2]));
+                       printf(" bad igmp cksum %04x!", EXTRACT_16BITS(&bp[2]));
        }
        return;
 trunc:
@@ -649,7 +649,7 @@ ip_print(register const u_char *bp, regi
                        sum = in_cksum((const u_short *)ip, hlen, 0);
                        if (sum != 0) {
                                ip_sum = EXTRACT_16BITS(&ip->ip_sum);
-                               (void)printf("%sbad ip cksum %x! -> %x", sep, 
ip_sum,
+                               (void)printf("%sbad ip cksum %04x! -> %04x", 
sep, ip_sum,
                                             in_cksum_shouldbe(ip_sum, sum));
                                sep = ", ";
                        }
Index: usr.sbin/tcpdump/print-mobile.c
===================================================================
RCS file: /cvs/src/usr.sbin/tcpdump/print-mobile.c,v
retrieving revision 1.5
diff -u -p -r1.5 print-mobile.c
--- usr.sbin/tcpdump/print-mobile.c     16 Jan 2015 06:40:21 -0000      1.5
+++ usr.sbin/tcpdump/print-mobile.c     10 Nov 2015 08:39:03 -0000
@@ -94,7 +94,7 @@ mobile_print(const u_char *bp, u_int len
                (void)printf("(oproto=%d)",proto>>8);
        }
        if (mob_in_cksum((u_short *)mob, osp ? 12 : 8)!=0) {
-               (void)printf(" (bad checksum %d)",crc);
+               (void)printf(" (bad checksum %04x)",crc);
        }
 
        return;
Index: usr.sbin/tcpdump/print-tcp.c
===================================================================
RCS file: /cvs/src/usr.sbin/tcpdump/print-tcp.c,v
retrieving revision 1.34
diff -u -p -r1.34 print-tcp.c
--- usr.sbin/tcpdump/print-tcp.c        5 Nov 2015 11:57:31 -0000       1.34
+++ usr.sbin/tcpdump/print-tcp.c        10 Nov 2015 08:39:03 -0000
@@ -420,7 +420,7 @@ tcp_print(register const u_char *bp, reg
                        sum = tcp_cksum(ip, tp, length);
                        if (sum != 0) {
                                tcp_sum = EXTRACT_16BITS(&tp->th_sum);
-                               (void)printf(" [bad tcp cksum %x! -> %x]", 
tcp_sum,
+                               (void)printf(" [bad tcp cksum %04x! -> %04x]", 
tcp_sum,
                                    in_cksum_shouldbe(tcp_sum, sum));
                        } else
                                (void)printf(" [tcp sum ok]");
@@ -433,7 +433,7 @@ tcp_print(register const u_char *bp, reg
                        sum = tcp6_cksum(ip6, tp, length);
                        if (sum != 0) {
                                tcp_sum = EXTRACT_16BITS(&tp->th_sum);
-                               (void)printf(" [bad tcp cksum %x! -> %x]", 
tcp_sum,
+                               (void)printf(" [bad tcp cksum %04x! -> %04x]", 
tcp_sum,
                                    in_cksum_shouldbe(tcp_sum, sum));
                        } else
                                (void)printf(" [tcp sum ok]");
Index: usr.sbin/tcpdump/print-udp.c
===================================================================
RCS file: /cvs/src/usr.sbin/tcpdump/print-udp.c,v
retrieving revision 1.38
diff -u -p -r1.38 print-udp.c
--- usr.sbin/tcpdump/print-udp.c        16 Jan 2015 06:40:22 -0000      1.38
+++ usr.sbin/tcpdump/print-udp.c        10 Nov 2015 08:39:03 -0000
@@ -571,7 +571,7 @@ udp_print(register const u_char *bp, u_i
                } else if (TTEST2(cp[0], length)) {
                        sum = udp_cksum(ip, up, length + sizeof(struct udphdr));
                        if (sum != 0)
-                               (void)printf(" [bad udp cksum %x! -> %x]", 
udp_sum,
+                               (void)printf(" [bad udp cksum %04x! -> %04x]", 
udp_sum,
                                    in_cksum_shouldbe(udp_sum, sum));
                        else
                                (void)printf(" [udp sum ok]");
@@ -586,7 +586,7 @@ udp_print(register const u_char *bp, u_i
                } else if (TTEST2(cp[0], length)) {
                        sum = udp6_cksum(ip6, up, length + sizeof(struct 
udphdr));
                        if (sum != 0)
-                               (void)printf(" [bad udp cksum %x! -> %x]", 
udp_sum,
+                               (void)printf(" [bad udp cksum %04x! -> %04x]", 
udp_sum,
                                    in_cksum_shouldbe(udp_sum, sum));
                        else
                                (void)printf(" [udp sum ok]");
Index: usr.sbin/tcpdump/print-vrrp.c
===================================================================
RCS file: /cvs/src/usr.sbin/tcpdump/print-vrrp.c,v
retrieving revision 1.3
diff -u -p -r1.3 print-vrrp.c
--- usr.sbin/tcpdump/print-vrrp.c       27 Oct 2009 23:59:57 -0000      1.3
+++ usr.sbin/tcpdump/print-vrrp.c       10 Nov 2015 08:39:03 -0000
@@ -95,7 +95,7 @@ vrrp_print(register const u_char *bp, re
                char c;
 
                if (TTEST2(bp[0], len) && in_cksum((const u_short*)bp, len, 0))
-                       printf(" (bad vrrp cksum %x!)",
+                       printf(" (bad vrrp cksum %04x!)",
                                EXTRACT_16BITS(&bp[6]));
                printf(" addrs");
                if (naddrs > 1)

Reply via email to