X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/f68c3e3ec0113a70c35d5a76d42096e8bdb40ae7..61c422a88caefe986c2bc0a7f2f3028f696fa5cd:/print-isakmp.c diff --git a/print-isakmp.c b/print-isakmp.c index 109066c6..e5563631 100644 --- a/print-isakmp.c +++ b/print-isakmp.c @@ -944,14 +944,14 @@ ikev1_attrmap_print(netdissect_options *ndo, 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; } @@ -988,13 +988,13 @@ ikev1_attr_print(netdissect_options *ndo, const u_char *p, const u_char *ep2) if (p[0] & 0x80) { ND_PRINT((ndo,"value=")); t = p[2]; - 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; } @@ -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; } @@ -1421,7 +1421,8 @@ ikev1_id_print(netdissect_options *ndo, u_char tpay _U_, mask = data + sizeof(struct in_addr); ND_PRINT((ndo," len=%d %s/%u.%u.%u.%u", len, ipaddr_string(ndo, data), - mask[0], mask[1], mask[2], mask[3])); + EXTRACT_U_1(mask), EXTRACT_U_1(mask + 1), + EXTRACT_U_1(mask + 2), EXTRACT_U_1(mask + 3))); } len = 0; break; @@ -1443,10 +1444,10 @@ ikev1_id_print(netdissect_options *ndo, u_char tpay _U_, /*XXX*/ ND_PRINT((ndo," len=%d %s/0x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x", len, ip6addr_string(ndo, data), - mask[0], mask[1], mask[2], mask[3], - mask[4], mask[5], mask[6], mask[7], - mask[8], mask[9], mask[10], mask[11], - mask[12], mask[13], mask[14], mask[15])); + EXTRACT_U_1(mask), EXTRACT_U_1(mask + 1), EXTRACT_U_1(mask + 2), EXTRACT_U_1(mask + 3), + EXTRACT_U_1(mask + 4), EXTRACT_U_1(mask + 5), EXTRACT_U_1(mask + 6), EXTRACT_U_1(mask + 7), + EXTRACT_U_1(mask + 8), EXTRACT_U_1(mask + 9), EXTRACT_U_1(mask + 10), EXTRACT_U_1(mask + 11), + EXTRACT_U_1(mask + 12), EXTRACT_U_1(mask + 13), EXTRACT_U_1(mask + 14), EXTRACT_U_1(mask + 15))); } len = 0; break; @@ -2260,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,7 +3096,7 @@ isakmp_rfc3948_print(netdissect_options *ndo, const u_char *bp2) { ND_TCHECK(bp[0]); - if(length == 1 && bp[0]==0xff) { + if(length == 1 && EXTRACT_U_1(bp)==0xff) { ND_PRINT((ndo, "isakmp-nat-keep-alive")); return; } @@ -3107,7 +3109,8 @@ isakmp_rfc3948_print(netdissect_options *ndo, /* * 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;