]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-isakmp.c
More nd_ification of structures.
[tcpdump] / print-isakmp.c
index 8244ac2da8634397d37b4b79952012f0faa13903..d82c4f2848cc85e0d223d210b39d5e9a8f87ea29 100644 (file)
@@ -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; i<idtype_len; i++) {
-                       if(ND_ISPRINT(typedata[i])) {
-                               ND_PRINT((ndo, "%c", typedata[i]));
+                       if(ND_ISPRINT(EXTRACT_U_1(typedata + i))) {
+                               ND_PRINT((ndo, "%c", EXTRACT_U_1(typedata + i)));
                        } else {
                                ND_PRINT((ndo, "."));
                        }
@@ -2604,7 +2604,8 @@ ikev2_vid_print(netdissect_options *ndo, u_char tpay,
        len = ntohs(e.len) - 4;
        ND_TCHECK2(*vid, len);
        for(i=0; i<len; i++) {
-               if(ND_ISPRINT(vid[i])) ND_PRINT((ndo, "%c", EXTRACT_U_1(vid + i)));
+               if(ND_ISPRINT(EXTRACT_U_1(vid + i)))
+                       ND_PRINT((ndo, "%c", EXTRACT_U_1(vid + i)));
                else ND_PRINT((ndo, "."));
        }
        if (2 < ndo->ndo_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;