]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-vjc.c
the failed/passed count was not kept in the right place
[tcpdump] / print-vjc.c
index cdfa1c960cb65716a5627eb320e3b661e2980bb2..28e4c8e9d53dd5bf962b1c130a3bc4d2b79d8e32 100644 (file)
@@ -88,7 +88,9 @@ vjc_print(netdissect_options *ndo, const u_char *bp, u_short proto _U_)
 {
        int i;
 
-       switch (EXTRACT_U_1(bp) & 0xf0) {
+       ndo->ndo_protocol = "vjc";
+       ND_TCHECK_1(bp);
+       switch (GET_U_1(bp) & 0xf0) {
        case TYPE_IP:
                if (ndo->ndo_eflag)
                        ND_PRINT("(vjc type=IP) ");
@@ -101,12 +103,15 @@ vjc_print(netdissect_options *ndo, const u_char *bp, u_short proto _U_)
                if (ndo->ndo_eflag)
                        ND_PRINT("(vjc type=compressed TCP) ");
                for (i = 0; i < 8; i++) {
-                       if (EXTRACT_U_1(bp + 1) & (0x80 >> i))
+                       ND_TCHECK_1(bp + 1);
+                       if (GET_U_1(bp + 1) & (0x80 >> i))
                                ND_PRINT("%c", "?CI?SAWU"[i]);
                }
-               if (EXTRACT_U_1(bp + 1))
+               if (GET_U_1(bp + 1))
                        ND_PRINT(" ");
-               ND_PRINT("C=0x%02x ", EXTRACT_U_1(bp + 2));
+               ND_TCHECK_1(bp + 2);
+               ND_PRINT("C=0x%02x ", GET_U_1(bp + 2));
+               ND_TCHECK_2(bp + 3);
                ND_PRINT("sum=0x%04x ", *(const u_short *)(bp + 3));
                return -1;
        case TYPE_ERROR:
@@ -115,7 +120,10 @@ vjc_print(netdissect_options *ndo, const u_char *bp, u_short proto _U_)
                return -1;
        default:
                if (ndo->ndo_eflag)
-                       ND_PRINT("(vjc type=0x%02x) ", EXTRACT_U_1(bp) & 0xf0);
+                       ND_PRINT("(vjc type=0x%02x) ", GET_U_1(bp) & 0xf0);
                return -1;
        }
+
+trunc:
+       return -1;
 }