X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/1a90fd99d279d63242419a30ba3e0720872bff75..0f328b4aa16b0b47f05a85c440ce1d07719e3cac:/print-isakmp.c diff --git a/print-isakmp.c b/print-isakmp.c index 8244ac2d..d82c4f28 100644 --- a/print-isakmp.c +++ b/print-isakmp.c @@ -918,8 +918,8 @@ ikev1_attrmap_print(netdissect_options *ndo, int totlen; uint32_t t, v; - ND_TCHECK(p[0]); - if (p[0] & 0x80) + ND_TCHECK_1(p); + if (EXTRACT_U_1(p) & 0x80) totlen = 4; else { ND_TCHECK_2(p + 2); @@ -937,21 +937,21 @@ ikev1_attrmap_print(netdissect_options *ndo, ND_PRINT((ndo,"type=%s ", map[t].type)); else ND_PRINT((ndo,"type=#%d ", t)); - if (p[0] & 0x80) { + if (EXTRACT_U_1(p) & 0x80) { ND_PRINT((ndo,"value=")); ND_TCHECK_2(p + 2); v = EXTRACT_BE_U_2(p + 2); if (map && t < nmap && v < map[t].nvalue && map[t].value[v]) ND_PRINT((ndo,"%s", map[t].value[v])); else { - if (!rawprint(ndo, (const uint8_t *)&p[2], 2)) { + if (!rawprint(ndo, (const uint8_t *)(p + 2), 2)) { ND_PRINT((ndo,")")); goto trunc; } } } else { ND_PRINT((ndo,"len=%d value=", totlen - 4)); - if (!rawprint(ndo, (const uint8_t *)&p[4], totlen - 4)) { + if (!rawprint(ndo, (const uint8_t *)(p + 4), totlen - 4)) { ND_PRINT((ndo,")")); goto trunc; } @@ -969,8 +969,8 @@ ikev1_attr_print(netdissect_options *ndo, const u_char *p, const u_char *ep2) int totlen; uint32_t t; - ND_TCHECK(p[0]); - if (p[0] & 0x80) + ND_TCHECK_1(p); + if (EXTRACT_U_1(p) & 0x80) totlen = 4; else { ND_TCHECK_2(p + 2); @@ -985,16 +985,16 @@ ikev1_attr_print(netdissect_options *ndo, const u_char *p, const u_char *ep2) ND_PRINT((ndo,"(")); t = EXTRACT_BE_U_2(p) & 0x7fff; ND_PRINT((ndo,"type=#%d ", t)); - if (p[0] & 0x80) { + if (EXTRACT_U_1(p) & 0x80) { ND_PRINT((ndo,"value=")); - t = p[2]; - if (!rawprint(ndo, (const uint8_t *)&p[2], 2)) { + t = EXTRACT_U_1(p + 2); + if (!rawprint(ndo, (const uint8_t *)(p + 2), 2)) { ND_PRINT((ndo,")")); goto trunc; } } else { ND_PRINT((ndo,"len=%d value=", totlen - 4)); - if (!rawprint(ndo, (const uint8_t *)&p[4], totlen - 4)) { + if (!rawprint(ndo, (const uint8_t *)(p + 4), totlen - 4)) { ND_PRINT((ndo,")")); goto trunc; } @@ -1408,7 +1408,7 @@ ikev1_id_print(netdissect_options *ndo, u_char tpay _U_, int i; ND_PRINT((ndo," len=%d ", len)); for (i = 0; i < len; i++) - safeputchar(ndo, data[i]); + safeputchar(ndo, EXTRACT_U_1(data + i)); len = 0; break; } @@ -2261,8 +2261,8 @@ ikev2_ID_print(netdissect_options *ndo, u_char tpay, if(dumpascii) { ND_TCHECK2(*typedata, idtype_len); for(i=0; indo_vflag && 4 < len) { @@ -3094,8 +3095,8 @@ isakmp_rfc3948_print(netdissect_options *ndo, const u_char *bp, u_int length, const u_char *bp2) { - ND_TCHECK(bp[0]); - if(length == 1 && bp[0]==0xff) { + ND_TCHECK_1(bp); + if(length == 1 && EXTRACT_U_1(bp)==0xff) { ND_PRINT((ndo, "isakmp-nat-keep-alive")); return; } @@ -3103,12 +3104,13 @@ isakmp_rfc3948_print(netdissect_options *ndo, if(length < 4) { goto trunc; } - ND_TCHECK(bp[3]); + ND_TCHECK_1(bp + 3); /* * see if this is an IKE packet */ - if(bp[0]==0 && bp[1]==0 && bp[2]==0 && bp[3]==0) { + if (EXTRACT_U_1(bp) == 0 && EXTRACT_U_1(bp + 1) == 0 && + EXTRACT_U_1(bp + 2) == 0 && EXTRACT_U_1(bp + 3) == 0) { ND_PRINT((ndo, "NONESP-encap: ")); isakmp_print(ndo, bp+4, length-4, bp2); return;