X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/e83dfd9b161eeb2bde1a42b5e3f2fc83639d54f3..66f29e001c608bf8ca3ed25f492fbd88e23e1b5e:/print-vjc.c diff --git a/print-vjc.c b/print-vjc.c index 597ba060..0743cfa0 100644 --- a/print-vjc.c +++ b/print-vjc.c @@ -30,6 +30,7 @@ #include #include "netdissect.h" +#include "extract.h" #include "slcompress.h" #include "ppp.h" @@ -83,11 +84,11 @@ * to the packet capture mechanism. */ int -vjc_print(netdissect_options *ndo, register const u_char *bp, u_short proto _U_) +vjc_print(netdissect_options *ndo, const u_char *bp, u_short proto _U_) { int i; - switch (bp[0] & 0xf0) { + switch (EXTRACT_U_1(bp) & 0xf0) { case TYPE_IP: if (ndo->ndo_eflag) ND_PRINT((ndo, "(vjc type=IP) ")); @@ -100,12 +101,12 @@ vjc_print(netdissect_options *ndo, register const u_char *bp, u_short proto _U_) if (ndo->ndo_eflag) ND_PRINT((ndo, "(vjc type=compressed TCP) ")); for (i = 0; i < 8; i++) { - if (bp[1] & (0x80 >> i)) + if (EXTRACT_U_1(bp + 1) & (0x80 >> i)) ND_PRINT((ndo, "%c", "?CI?SAWU"[i])); } - if (bp[1]) + if (EXTRACT_U_1(bp + 1)) ND_PRINT((ndo, " ")); - ND_PRINT((ndo, "C=0x%02x ", bp[2])); + ND_PRINT((ndo, "C=0x%02x ", EXTRACT_U_1(bp + 2))); ND_PRINT((ndo, "sum=0x%04x ", *(const u_short *)(bp + 3))); return -1; case TYPE_ERROR: @@ -114,7 +115,7 @@ vjc_print(netdissect_options *ndo, register const u_char *bp, u_short proto _U_) return -1; default: if (ndo->ndo_eflag) - ND_PRINT((ndo, "(vjc type=0x%02x) ", bp[0] & 0xf0)); + ND_PRINT((ndo, "(vjc type=0x%02x) ", EXTRACT_U_1(bp) & 0xf0)); return -1; } }