]> The Tcpdump Group git mirrors - tcpdump/commitdiff
Use more the EXTRACT_U_1() macro (28/n)
authorFrancois-Xavier Le Bail <[email protected]>
Sun, 26 Nov 2017 12:02:48 +0000 (13:02 +0100)
committerFrancois-Xavier Le Bail <[email protected]>
Sun, 26 Nov 2017 14:44:43 +0000 (15:44 +0100)
In ND_PRINT() macro call(s) (step 7).

p[n] ...

26 files changed:
print-802_11.c
print-atm.c
print-babel.c
print-bfd.c
print-bgp.c
print-carp.c
print-cdp.c
print-dhcp6.c
print-hncp.c
print-icmp6.c
print-ip.c
print-ip6opts.c
print-isakmp.c
print-juniper.c
print-l2tp.c
print-llc.c
print-lldp.c
print-mobility.c
print-pim.c
print-radius.c
print-sl.c
print-smb.c
print-stp.c
print-sunatm.c
print-tcp.c
print-vrrp.c

index 67300ee67d94a27fb6097c5c275c4e473d3769cb..a1c5b58a8bb41a351410526fa904a6c55564d39b 100644 (file)
@@ -1590,9 +1590,9 @@ handle_action(netdissect_options *ndo,
                ND_PRINT((ndo, " (%s): ", etheraddr_string(ndo, src)));
        }
        switch (p[0]) {
-       case 0: ND_PRINT((ndo, "Spectrum Management Act#%d", p[1])); break;
-       case 1: ND_PRINT((ndo, "QoS Act#%d", p[1])); break;
-       case 2: ND_PRINT((ndo, "DLS Act#%d", p[1])); break;
+       case 0: ND_PRINT((ndo, "Spectrum Management Act#%d", EXTRACT_U_1(p + 1))); break;
+       case 1: ND_PRINT((ndo, "QoS Act#%d", EXTRACT_U_1(p + 1))); break;
+       case 2: ND_PRINT((ndo, "DLS Act#%d", EXTRACT_U_1(p + 1))); break;
        case 3: ND_PRINT((ndo, "BA ")); PRINT_BA_ACTION(p[1]); break;
        case 7: ND_PRINT((ndo, "HT ")); PRINT_HT_ACTION(p[1]); break;
        case 13: ND_PRINT((ndo, "MeshAction ")); PRINT_MESH_ACTION(p[1]); break;
@@ -1602,9 +1602,9 @@ handle_action(netdissect_options *ndo,
        case 15:
                ND_PRINT((ndo, "SelfprotectAction "));
                PRINT_SELFPROT_ACTION(p[1]); break;
-       case 127: ND_PRINT((ndo, "Vendor Act#%d", p[1])); break;
+       case 127: ND_PRINT((ndo, "Vendor Act#%d", EXTRACT_U_1(p + 1))); break;
        default:
-               ND_PRINT((ndo, "Reserved(%d) Act#%d", p[0], p[1]));
+               ND_PRINT((ndo, "Reserved(%d) Act#%d", EXTRACT_U_1(p), EXTRACT_U_1(p + 1)));
                break;
        }
        return 1;
index 03c39ff01f1d0790a7bcebf6e7c73570ae375bdf..9c4adbc12c040529a4335b04e469bf2e75c490b5 100644 (file)
@@ -370,7 +370,7 @@ sig_print(netdissect_options *ndo,
                ND_PRINT((ndo, "CALL_REF:0x%06x", call_ref));
        } else {
                /* SSCOP with some unknown protocol atop it */
-               ND_PRINT((ndo, "SSCOP, proto %d ", p[PROTO_POS]));
+               ND_PRINT((ndo, "SSCOP, proto %d ", EXTRACT_U_1(p + PROTO_POS)));
        }
        return;
 
index 3c80717420c0c18240c646b47c10e7ab163a4af4..c9386245673d27a273b19cf3891acd2b2e6d30f1 100644 (file)
@@ -57,7 +57,7 @@ babel_print(netdissect_options *ndo,
         ND_PRINT((ndo, " invalid header"));
         return;
     } else {
-        ND_PRINT((ndo, " %d", cp[1]));
+        ND_PRINT((ndo, " %d", EXTRACT_U_1(cp + 1)));
     }
 
     switch(cp[1]) {
@@ -487,9 +487,9 @@ babel_print_v2(netdissect_options *ndo,
                     ND_PRINT((ndo, "/truncated"));
                 else
                     ND_PRINT((ndo, "%s%s%s",
-                           (message[3] & 0x80) ? "/prefix": "",
-                           (message[3] & 0x40) ? "/id" : "",
-                           (message[3] & 0x3f) ? "/unknown" : ""));
+                           (EXTRACT_U_1(message + 3) & 0x80) ? "/prefix": "",
+                           (EXTRACT_U_1(message + 3) & 0x40) ? "/id" : "",
+                           (EXTRACT_U_1(message + 3) & 0x3f) ? "/unknown" : ""));
             } else {
                 u_short interval, seqno, metric;
                 u_char plen;
@@ -507,9 +507,9 @@ babel_print_v2(netdissect_options *ndo,
                 seqno = EXTRACT_BE_U_2(message + 8);
                 metric = EXTRACT_BE_U_2(message + 10);
                 ND_PRINT((ndo, "%s%s%s %s metric %u seqno %u interval %s",
-                       (message[3] & 0x80) ? "/prefix": "",
-                       (message[3] & 0x40) ? "/id" : "",
-                       (message[3] & 0x3f) ? "/unknown" : "",
+                       (EXTRACT_U_1(message + 3) & 0x80) ? "/prefix": "",
+                       (EXTRACT_U_1(message + 3) & 0x40) ? "/id" : "",
+                       (EXTRACT_U_1(message + 3) & 0x3f) ? "/unknown" : "",
                        format_prefix(ndo, prefix, plen),
                        metric, seqno, format_interval_update(interval)));
                 if(message[3] & 0x80) {
@@ -538,7 +538,7 @@ babel_print_v2(netdissect_options *ndo,
                                     message + 4, NULL, len - 2, prefix);
                 if(rc < 0) goto invalid;
                 ND_PRINT((ndo, "for %s",
-                       message[2] == 0 ? "any" : format_prefix(ndo, prefix, plen)));
+                       EXTRACT_U_1(message + 2) == 0 ? "any" : format_prefix(ndo, prefix, plen)));
             }
         }
             break;
@@ -558,7 +558,7 @@ babel_print_v2(netdissect_options *ndo,
                 if(rc < 0) goto invalid;
                 plen = message[3] + (message[2] == 1 ? 96 : 0);
                 ND_PRINT((ndo, "(%u hops) for %s seqno %u id %s",
-                       message[6], format_prefix(ndo, prefix, plen),
+                       EXTRACT_U_1(message + 6), format_prefix(ndo, prefix, plen),
                        seqno, format_id(message + 8)));
             }
         }
@@ -582,7 +582,7 @@ babel_print_v2(netdissect_options *ndo,
                 if(len < 18) goto invalid;
                 ND_PRINT((ndo, "key-id %u digest-%u ", EXTRACT_BE_U_2(message + 2), len - 2));
                 for (j = 0; j < len - 2; j++)
-                    ND_PRINT((ndo, "%02X", message[4 + j]));
+                    ND_PRINT((ndo, "%02X", EXTRACT_U_1(message + j + 4)));
             }
         }
             break;
index 74030d0398fd1cf6c34eaa3a51499cb56f2b560f..feea837eac145c957fe79fb8c82199e26111401a 100644 (file)
@@ -248,7 +248,7 @@ auth_print(netdissect_options *ndo, register const u_char *pptr)
                 ND_TCHECK2(*pptr, AUTH_MD5_HASH_LEN);
                 ND_PRINT((ndo, "\n\t  Digest: "));
                 for(i = 0; i < AUTH_MD5_HASH_LEN; i++)
-                    ND_PRINT((ndo, "%02x", pptr[i]));
+                    ND_PRINT((ndo, "%02x", EXTRACT_U_1(pptr + i)));
                 break;
             case AUTH_SHA1:
             case AUTH_MET_SHA1:
@@ -279,7 +279,7 @@ auth_print(netdissect_options *ndo, register const u_char *pptr)
                 ND_TCHECK2(*pptr, AUTH_SHA1_HASH_LEN);
                 ND_PRINT((ndo, "\n\t  Hash: "));
                 for(i = 0; i < AUTH_SHA1_HASH_LEN; i++)
-                    ND_PRINT((ndo, "%02x", pptr[i]));
+                    ND_PRINT((ndo, "%02x", EXTRACT_U_1(pptr + i)));
                 break;
         }
         return 0;
index c225f6eb9369c51bca13f69865d7ce9de7dc2a5f..a4cf664b496acb4790af3b0b23b54d7d4a3f07f7 100644 (file)
@@ -1743,7 +1743,7 @@ bgp_attr_print(netdissect_options *ndo,
                        ND_PRINT((ndo, "\n\t    %u SNPA", snpa));
                        for (/*nothing*/; snpa > 0; snpa--) {
                                ND_TCHECK(tptr[0]);
-                               ND_PRINT((ndo, "\n\t      %d bytes", tptr[0]));
+                               ND_PRINT((ndo, "\n\t      %d bytes", EXTRACT_U_1(tptr)));
                                tptr += tptr[0] + 1;
                        }
                } else {
@@ -2361,11 +2361,11 @@ bgp_capabilities_print(netdissect_options *ndo,
                            EXTRACT_BE_U_2(opt + i + 2),
                            tok2str(bgp_safi_values, "Unknown",
                                       EXTRACT_U_1(opt + i + 5)),
-                           opt[i+5]));
+                           EXTRACT_U_1(opt + i + 5)));
                     break;
                 case BGP_CAPCODE_RESTART:
                     ND_PRINT((ndo, "\n\t\tRestart Flags: [%s], Restart Time %us",
-                           ((opt[i+2])&0x80) ? "R" : "none",
+                           ((EXTRACT_U_1(opt + i + 2))&0x80) ? "R" : "none",
                            EXTRACT_BE_U_2(opt + i + 2)&0xfff));
                     tcap_len-=2;
                     cap_offset=4;
@@ -2376,8 +2376,8 @@ bgp_capabilities_print(netdissect_options *ndo,
                                EXTRACT_BE_U_2(opt + i + cap_offset),
                                tok2str(bgp_safi_values,"Unknown",
                                           EXTRACT_U_1(opt + i + cap_offset + 2)),
-                               opt[i+cap_offset+2],
-                               ((opt[i+cap_offset+3])&0x80) ? "yes" : "no" ));
+                               EXTRACT_U_1(opt + (i + cap_offset + 2)),
+                               ((EXTRACT_U_1(opt + (i + cap_offset + 3)))&0x80) ? "yes" : "no" ));
                         tcap_len-=4;
                         cap_offset+=4;
                     }
@@ -2411,7 +2411,7 @@ bgp_capabilities_print(netdissect_options *ndo,
                                   tok2str(af_values,"Unknown",EXTRACT_BE_U_2(opt + i + cap_offset)),
                                   EXTRACT_BE_U_2(opt + i + cap_offset),
                                   tok2str(bgp_safi_values,"Unknown",EXTRACT_U_1(opt + i + cap_offset + 2)),
-                                  opt[i+cap_offset+2],
+                                  EXTRACT_U_1(opt + (i + cap_offset + 2)),
                                   tok2str(bgp_add_path_recvsend,"Bogus (0x%02x)",EXTRACT_U_1(opt + i + cap_offset + 3))
                         ));
                         tcap_len-=4;
index 9c7ba4ad7e1ce2c66f3ab084a25dbf12fd9af569..45ed4f0fcb5318d2ee6144cb76bf17fc9ebcdb34 100644 (file)
@@ -66,7 +66,7 @@ carp_print(netdissect_options *ndo, register const u_char *bp, register u_int le
        ND_TCHECK(bp[2]);
        ND_TCHECK(bp[5]);
        ND_PRINT((ndo, "vhid=%d advbase=%d advskew=%d authlen=%d ",
-           bp[1], bp[5], bp[2], bp[3]));
+           EXTRACT_U_1(bp + 1), EXTRACT_U_1(bp + 5), EXTRACT_U_1(bp + 2), EXTRACT_U_1(bp + 3)));
        if (ndo->ndo_vflag) {
                struct cksum_vec vec[1];
                vec[0].ptr = (const uint8_t *)bp;
index dc75f8ebceb94717b4154a55941f4f743a9b579d..77c51358f26313f3eeeb5ef88e8d66a9be3db2ab 100644 (file)
@@ -381,7 +381,9 @@ cdp_print_prefixes(netdissect_options *ndo,
        ND_PRINT((ndo, " IPv4 Prefixes (%d):", l / 5));
 
        while (l > 0) {
-               ND_PRINT((ndo, " %u.%u.%u.%u/%u", p[0], p[1], p[2], p[3], p[4]));
+               ND_PRINT((ndo, " %u.%u.%u.%u/%u",
+                         EXTRACT_U_1(p), EXTRACT_U_1(p + 1), EXTRACT_U_1(p + 2),
+                         EXTRACT_U_1(p + 3), EXTRACT_U_1(p + 4)));
                l -= 5;
                p += 5;
        }
index 2894ea8dd96a11833ee1f495cd5b4c9d10601044..e6986da0089f897cbc49a22802eaad0c8abdbc4b 100644 (file)
@@ -325,7 +325,7 @@ dhcp6opt_print(netdissect_options *ndo,
                                            EXTRACT_BE_U_2(tp + 2),
                                            EXTRACT_BE_U_4(tp + 4)));
                                        for (i = 8; i < optlen; i++)
-                                               ND_PRINT((ndo, "%02x", tp[i]));
+                                               ND_PRINT((ndo, "%02x", EXTRACT_U_1(tp + i)));
                                        /*(*/
                                        ND_PRINT((ndo, ")"));
                                } else {
@@ -337,7 +337,7 @@ dhcp6opt_print(netdissect_options *ndo,
                                if (optlen >= 2 + 8) {
                                        ND_PRINT((ndo, " vid "));
                                        for (i = 2; i < 2 + 8; i++)
-                                               ND_PRINT((ndo, "%02x", tp[i]));
+                                               ND_PRINT((ndo, "%02x", EXTRACT_U_1(tp + i)));
                                        /*(*/
                                        ND_PRINT((ndo, ")"));
                                } else {
@@ -350,7 +350,7 @@ dhcp6opt_print(netdissect_options *ndo,
                                        ND_PRINT((ndo, " hwaddr type %u ",
                                            EXTRACT_BE_U_2(tp + 2)));
                                        for (i = 4; i < optlen; i++)
-                                               ND_PRINT((ndo, "%02x", tp[i]));
+                                               ND_PRINT((ndo, "%02x", EXTRACT_U_1(tp + i)));
                                        /*(*/
                                        ND_PRINT((ndo, ")"));
                                } else {
@@ -521,7 +521,7 @@ dhcp6opt_print(netdissect_options *ndo,
                        tp = (const u_char *)(dh6o + 1);
                        ND_PRINT((ndo, " "));
                        for (i = 0; i < optlen && i < 10; i++)
-                               ND_PRINT((ndo, "%02x", tp[i]));
+                               ND_PRINT((ndo, "%02x", EXTRACT_U_1(tp + i)));
                        ND_PRINT((ndo, "...)"));
                        break;
                case DH6OPT_RECONF_MSG:
@@ -617,7 +617,7 @@ dhcp6opt_print(netdissect_options *ndo,
                                break;
                        }
                        tp = (const u_char *)(dh6o + 1);
-                       ND_PRINT((ndo, " %s/%d", ip6addr_string(ndo, tp + 9), tp[8]));
+                       ND_PRINT((ndo, " %s/%d", ip6addr_string(ndo, tp + 9), EXTRACT_U_1(tp + 8)));
                        ND_PRINT((ndo, " pltime:%u vltime:%u",
                            EXTRACT_BE_U_4(tp),
                            EXTRACT_BE_U_4(tp + 4)));
@@ -647,7 +647,7 @@ dhcp6opt_print(netdissect_options *ndo,
                         * Print hex dump first 10 characters.
                         */
                        for (i = 4; i < optlen && i < 14; i++)
-                               ND_PRINT((ndo, "%02x", tp[i]));
+                               ND_PRINT((ndo, "%02x", EXTRACT_U_1(tp + i)));
                        ND_PRINT((ndo, "...)"));
                        break;
                case DH6OPT_LQ_QUERY:
@@ -694,7 +694,7 @@ dhcp6opt_print(netdissect_options *ndo,
                         * Print hex dump first 10 characters.
                         */
                        for (i = 16; i < optlen && i < 26; i++)
-                               ND_PRINT((ndo, "%02x", tp[i]));
+                               ND_PRINT((ndo, "%02x", EXTRACT_U_1(tp + i)));
                        ND_PRINT((ndo, "...)"));
                        break;
                case DH6OPT_NTP_SERVER:
index 1b5ed5d4ed9ee21a10cbc31f9edf7b3a6fcbe694..b0315722d2e27e75580081fca4f3f0d7333dc82d 100644 (file)
@@ -774,9 +774,9 @@ hncp_print_rec(netdissect_options *ndo,
             ip_address = format_ip6addr(ndo, value);
             ND_PRINT((ndo, " IP-Address: %s %c%c%c ",
                 ip_address,
-                (value[16] & 4) ? 'l' : '-',
-                (value[16] & 2) ? 'b' : '-',
-                (value[16] & 1) ? 's' : '-'
+                (EXTRACT_U_1(value + 16) & 4) ? 'l' : '-',
+                (EXTRACT_U_1(value + 16) & 2) ? 'b' : '-',
+                (EXTRACT_U_1(value + 16) & 1) ? 's' : '-'
             ));
             len = print_dns_label(ndo, value+17, bodylen-17, 1);
             if (len < 0) {
index f7e26ec42c0dd03b34dfa32dbc3e057d72822cbe..10ec6bee42b03df8789d9f3309a49624160f3348 100644 (file)
@@ -1495,7 +1495,7 @@ mldv2_query_print(netdissect_options *ndo, const u_char *bp, u_int len)
                ND_PRINT((ndo," sflag"));
        }
        if (bp[24] & 0x07) {
-               ND_PRINT((ndo," robustness=%d", bp[24] & 0x07));
+               ND_PRINT((ndo," robustness=%d", EXTRACT_U_1(bp + 24) & 0x07));
        }
        if (bp[25] < 128) {
                qqi = bp[25];
index 33ef44c204a5e5b9a5389614b32f17201ceb42cd..a49a957ca8eea9e44f66013c230661c5e62b8201 100644 (file)
@@ -70,7 +70,7 @@ ip_printroute(netdissect_options *ndo,
        ND_TCHECK(cp[2]);
        ptr = cp[2] - 1;
        if (ptr < 3 || ((ptr + 1) & 3) || ptr > length + 1)
-               ND_PRINT((ndo, " [bad ptr %u]", cp[2]));
+               ND_PRINT((ndo, " [bad ptr %u]", EXTRACT_U_1(cp + 2)));
 
        for (len = 3; len < length; len += 4) {
                ND_TCHECK_4(cp + len);
@@ -189,7 +189,7 @@ ip_printts(netdissect_options *ndo,
        ptr = cp[2] - 1;
        len = 0;
        if (ptr < 4 || ((ptr - 4) & (hoplen-1)) || ptr > length + 1)
-               ND_PRINT((ndo, "[bad ptr %u]", cp[2]));
+               ND_PRINT((ndo, "[bad ptr %u]", EXTRACT_U_1(cp + 2)));
        ND_TCHECK(cp[3]);
        switch (cp[3]&0xF) {
        case IPOPT_TS_TSONLY:
@@ -211,7 +211,7 @@ ip_printts(netdissect_options *ndo,
                ND_PRINT((ndo, "PRESPEC"));
                break;
        default:
-               ND_PRINT((ndo, "[bad ts type %d]", cp[3]&0xF));
+               ND_PRINT((ndo, "[bad ts type %d]", EXTRACT_U_1(cp + 3)&0xF));
                goto done;
        }
 
@@ -229,7 +229,7 @@ done:
        ND_PRINT((ndo, "%s", ptr == len ? " ^ " : ""));
 
        if (cp[3]>>4)
-               ND_PRINT((ndo, " [%d hops not recorded]} ", cp[3]>>4));
+               ND_PRINT((ndo, " [%d hops not recorded]} ", EXTRACT_U_1(cp + 3)>>4));
        else
                ND_PRINT((ndo, "}"));
        return (0);
index 21d8b5106e8f3c826ade7b751179624184baf28c..4533bfabe77e76bb269fbe9fb88394bcedb3eeca 100644 (file)
@@ -72,10 +72,10 @@ ip6_sopt_print(netdissect_options *ndo, const u_char *bp, int len)
            break;
        default:
            if (len - i < IP6OPT_MINLEN) {
-               ND_PRINT((ndo, ", sopt_type %d: trunc)", bp[i]));
+               ND_PRINT((ndo, ", sopt_type %d: trunc)", EXTRACT_U_1(bp + i)));
                goto trunc;
            }
-           ND_PRINT((ndo, ", sopt_type 0x%02x: len=%d", bp[i], bp[i + 1]));
+           ND_PRINT((ndo, ", sopt_type 0x%02x: len=%d", EXTRACT_U_1(bp + i), EXTRACT_U_1(bp + i + 1)));
            break;
        }
     }
@@ -122,7 +122,7 @@ ip6_opt_print(netdissect_options *ndo, const u_char *bp, int len)
                goto trunc;
            }
            if (bp[i + 1] != IP6OPT_RTALERT_LEN - 2) {
-               ND_PRINT((ndo, "(rtalert: invalid len %d)", bp[i + 1]));
+               ND_PRINT((ndo, "(rtalert: invalid len %d)", EXTRACT_U_1(bp + i + 1)));
                goto trunc;
            }
            ND_PRINT((ndo, "(rtalert: 0x%04x) ", EXTRACT_BE_U_2(bp + i + 2)));
@@ -133,7 +133,7 @@ ip6_opt_print(netdissect_options *ndo, const u_char *bp, int len)
                goto trunc;
            }
            if (bp[i + 1] != IP6OPT_JUMBO_LEN - 2) {
-               ND_PRINT((ndo, "(jumbo: invalid len %d)", bp[i + 1]));
+               ND_PRINT((ndo, "(jumbo: invalid len %d)", EXTRACT_U_1(bp + i + 1)));
                goto trunc;
            }
            ND_PRINT((ndo, "(jumbo: %u) ", EXTRACT_BE_U_4(bp + i + 2)));
@@ -144,7 +144,7 @@ ip6_opt_print(netdissect_options *ndo, const u_char *bp, int len)
                goto trunc;
            }
            if (bp[i + 1] < IP6OPT_HOMEADDR_MINLEN - 2) {
-               ND_PRINT((ndo, "(homeaddr: invalid len %d)", bp[i + 1]));
+               ND_PRINT((ndo, "(homeaddr: invalid len %d)", EXTRACT_U_1(bp + i + 1)));
                goto trunc;
            }
            ND_PRINT((ndo, "(homeaddr: %s", ip6addr_string(ndo, bp + i + 2)));
@@ -156,10 +156,10 @@ ip6_opt_print(netdissect_options *ndo, const u_char *bp, int len)
            break;
        default:
            if (len - i < IP6OPT_MINLEN) {
-               ND_PRINT((ndo, "(type %d: trunc)", bp[i]));
+               ND_PRINT((ndo, "(type %d: trunc)", EXTRACT_U_1(bp + i)));
                goto trunc;
            }
-           ND_PRINT((ndo, "(opt_type 0x%02x: len=%d)", bp[i], bp[i + 1]));
+           ND_PRINT((ndo, "(opt_type 0x%02x: len=%d)", EXTRACT_U_1(bp + i), EXTRACT_U_1(bp + i + 1)));
            break;
        }
     }
index 109066c6948cbf64f91ba8fe5dcb1a574b51d685..8244ac2da8634397d37b4b79952012f0faa13903 100644 (file)
@@ -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;
@@ -2603,7 +2604,7 @@ 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", vid[i]));
+               if(ND_ISPRINT(vid[i])) ND_PRINT((ndo, "%c", EXTRACT_U_1(vid + i)));
                else ND_PRINT((ndo, "."));
        }
        if (2 < ndo->ndo_vflag && 4 < len) {
index f25b9f611331a3c030733d1a17001bd9104db311..cb22c6c67e98d8f4d0192b35f5e2fc78d68fa801 100644 (file)
@@ -1362,7 +1362,7 @@ juniper_parse_header(netdissect_options *ndo,
                     ND_PRINT((ndo, ", cookie 0x"));
                 for (idx = 0; idx < l2info->cookie_len; idx++) {
                     l2info->cookie[idx] = p[idx]; /* copy cookie data */
-                    if (ndo->ndo_eflag) ND_PRINT((ndo, "%02x", p[idx]));
+                    if (ndo->ndo_eflag) ND_PRINT((ndo, "%02x", EXTRACT_U_1(p + idx)));
                 }
             }
 
index 7feab704046931a07fb2870d0b1ca3a8164ebbda..6cf0c0adfb1104c17b0d51b69071008913984bfd 100644 (file)
@@ -396,7 +396,7 @@ l2tp_q931_cc_print(netdissect_options *ndo, const u_char *dat, u_int length)
                return;
        }
        print_16bits_val(ndo, (const uint16_t *)dat);
-       ND_PRINT((ndo, ", %02x", dat[2]));
+       ND_PRINT((ndo, ", %02x", EXTRACT_U_1(dat + 2)));
        dat += 3;
        length -= 3;
        if (length != 0) {
index 289667c3728996bb701b2f7ad8b717b67a5e6fe0..3673ef8d0c5b15c551fb86676d98353f403960db 100644 (file)
@@ -378,7 +378,9 @@ llc_print(netdissect_options *ndo, const u_char *p, u_int length, u_int caplen,
                                        if (caplen > 0)
                                                ND_DEFAULTPRINT((const u_char *)p, caplen);
                                } else
-                                       ND_PRINT((ndo, ": %02x %02x", p[1], p[2]));
+                                       ND_PRINT((ndo, ": %02x %02x",
+                                                 EXTRACT_U_1(p + 1),
+                                                 EXTRACT_U_1(p + 2)));
                                return (hdrlen);
                        }
                }
index 6b34005f71b854c8590e28f628fb50b465b752c8..1d829ac80bcb7a02044fa2b4fb59a4a0bfaaca00 100644 (file)
@@ -617,8 +617,10 @@ print_ets_priority_assignment_table(netdissect_options *ndo,
     ND_PRINT((ndo, "\n\t    Priority Assignment Table"));
     ND_PRINT((ndo, "\n\t     Priority : 0   1   2   3   4   5   6   7"));
     ND_PRINT((ndo, "\n\t     Value    : %-3d %-3d %-3d %-3d %-3d %-3d %-3d %-3d",
-            ptr[0]>>4,ptr[0]&0x0f,ptr[1]>>4,ptr[1]&0x0f,ptr[2]>>4,
-            ptr[2] & 0x0f, ptr[3] >> 4, ptr[3] & 0x0f));
+              EXTRACT_U_1(ptr) >> 4, EXTRACT_U_1(ptr) & 0x0f,
+              EXTRACT_U_1(ptr + 1) >> 4, EXTRACT_U_1(ptr + 1) & 0x0f,
+              EXTRACT_U_1(ptr + 2) >> 4, EXTRACT_U_1(ptr + 2) & 0x0f,
+              EXTRACT_U_1(ptr + 3) >> 4, EXTRACT_U_1(ptr + 3) & 0x0f));
 }
 
 static void
@@ -628,7 +630,9 @@ print_tc_bandwidth_table(netdissect_options *ndo,
     ND_PRINT((ndo, "\n\t    TC Bandwidth Table"));
     ND_PRINT((ndo, "\n\t     TC%%   : 0   1   2   3   4   5   6   7"));
     ND_PRINT((ndo, "\n\t     Value : %-3d %-3d %-3d %-3d %-3d %-3d %-3d %-3d",
-             ptr[0], ptr[1], ptr[2], ptr[3], ptr[4], ptr[5], ptr[6], ptr[7]));
+              EXTRACT_U_1(ptr), EXTRACT_U_1(ptr + 1), EXTRACT_U_1(ptr + 2),
+              EXTRACT_U_1(ptr + 3), EXTRACT_U_1(ptr + 4), EXTRACT_U_1(ptr + 5),
+              EXTRACT_U_1(ptr + 6), EXTRACT_U_1(ptr + 7)));
 }
 
 static void
@@ -638,7 +642,9 @@ print_tsa_assignment_table(netdissect_options *ndo,
     ND_PRINT((ndo, "\n\t    TSA Assignment Table"));
     ND_PRINT((ndo, "\n\t     Traffic Class: 0   1   2   3   4   5   6   7"));
     ND_PRINT((ndo, "\n\t     Value        : %-3d %-3d %-3d %-3d %-3d %-3d %-3d %-3d",
-             ptr[0], ptr[1], ptr[2], ptr[3], ptr[4], ptr[5], ptr[6], ptr[7]));
+              EXTRACT_U_1(ptr), EXTRACT_U_1(ptr + 1), EXTRACT_U_1(ptr + 2),
+              EXTRACT_U_1(ptr + 3), EXTRACT_U_1(ptr + 4), EXTRACT_U_1(ptr + 5),
+              EXTRACT_U_1(ptr + 6), EXTRACT_U_1(ptr + 7)));
 }
 
 /*
index 3c0bd2687144daf1dfeca2722275e8f1602de50b..6d33ebd94fb3fb76929bbd3bb9272baee730c00f 100644 (file)
@@ -182,10 +182,10 @@ mobility_opt_print(netdissect_options *ndo,
                        break;
                default:
                        if (len - i < IP6MOPT_MINLEN) {
-                               ND_PRINT((ndo, "(sopt_type %u: trunc)", bp[i]));
+                               ND_PRINT((ndo, "(sopt_type %u: trunc)", EXTRACT_U_1(bp + i)));
                                goto trunc;
                        }
-                       ND_PRINT((ndo, "(type-0x%02x: len=%u)", bp[i], bp[i + 1]));
+                       ND_PRINT((ndo, "(type-0x%02x: len=%u)", EXTRACT_U_1(bp + i), EXTRACT_U_1(bp + i + 1)));
                        break;
                }
        }
index 4e1708f270a1fab617980024103e4fbae52bb3cc..95b5b5c4a03b23a9c3bd60ff09169fa23bf3cc25 100644 (file)
@@ -158,14 +158,14 @@ pimv1_join_prune_print(netdissect_options *ndo,
                        unsigned_relts_print(ndo, hold);
                }
                ND_PRINT((ndo, "%s (%s/%d, %s", njoin ? "Join" : "Prune",
-               ipaddr_string(ndo, bp + 26), bp[25] & 0x3f,
+               ipaddr_string(ndo, bp + 26), EXTRACT_U_1(bp + 25) & 0x3f,
                ipaddr_string(ndo, bp + 12)));
                if (EXTRACT_BE_U_4(bp + 16) != 0xffffffff)
                        ND_PRINT((ndo, "/%s", ipaddr_string(ndo, bp + 16)));
                ND_PRINT((ndo, ") %s%s %s",
-                   (bp[24] & 0x01) ? "Sparse" : "Dense",
-                   (bp[25] & 0x80) ? " WC" : "",
-                   (bp[25] & 0x40) ? "RP" : "SPT"));
+                   (EXTRACT_U_1(bp + 24) & 0x01) ? "Sparse" : "Dense",
+                   (EXTRACT_U_1(bp + 25) & 0x80) ? " WC" : "",
+                   (EXTRACT_U_1(bp + 25) & 0x40) ? "RP" : "SPT"));
                return;
        }
 
@@ -232,11 +232,11 @@ pimv1_join_prune_print(netdissect_options *ndo,
                                goto trunc;
                        ND_TCHECK_6(bp);
                        ND_PRINT((ndo, "\n\t%s %s%s%s%s/%d", type,
-                           (bp[0] & 0x01) ? "Sparse " : "Dense ",
-                           (bp[1] & 0x80) ? "WC " : "",
-                           (bp[1] & 0x40) ? "RP " : "SPT ",
+                           (EXTRACT_U_1(bp) & 0x01) ? "Sparse " : "Dense ",
+                           (EXTRACT_U_1(bp + 1) & 0x80) ? "WC " : "",
+                           (EXTRACT_U_1(bp + 1) & 0x40) ? "RP " : "SPT ",
                            ipaddr_string(ndo, bp + 2),
-                           bp[1] & 0x3f));
+                           EXTRACT_U_1(bp + 1) & 0x3f));
                        bp += 6;
                        len -= 6;
                }
@@ -271,7 +271,7 @@ pimv1_print(netdissect_options *ndo,
                                ND_PRINT((ndo, " Sparse-Dense-mode"));
                                break;
                        default:
-                               ND_PRINT((ndo, " mode-%d", bp[8] >> 4));
+                               ND_PRINT((ndo, " mode-%d", EXTRACT_U_1(bp + 8) >> 4));
                                break;
                        }
                }
@@ -311,9 +311,9 @@ pimv1_print(netdissect_options *ndo,
                        ND_PRINT((ndo, "/%s", ipaddr_string(ndo, bp + 12)));
                ND_TCHECK_4(bp + 24);
                ND_PRINT((ndo, " %s pref %d metric %d",
-                   (bp[20] & 0x80) ? "RP-tree" : "SPT",
-               EXTRACT_BE_U_4(bp + 20) & 0x7fffffff,
-               EXTRACT_BE_U_4(bp + 24)));
+                   (EXTRACT_U_1(bp + 20) & 0x80) ? "RP-tree" : "SPT",
+                   EXTRACT_BE_U_4(bp + 20) & 0x7fffffff,
+                   EXTRACT_BE_U_4(bp + 24)));
                break;
        case PIMV1_TYPE_JOIN_PRUNE:
        case PIMV1_TYPE_GRAFT:
@@ -327,7 +327,7 @@ pimv1_print(netdissect_options *ndo,
        }
        ND_TCHECK(bp[4]);
        if ((bp[4] >> 4) != 1)
-               ND_PRINT((ndo, " [v%d]", bp[4] >> 4));
+               ND_PRINT((ndo, " [v%d]", EXTRACT_U_1(bp + 4) >> 4));
        return;
 
 trunc:
@@ -418,7 +418,7 @@ cisco_autorp_print(netdissect_options *ndo,
                        break;
                }
                if (bp[0] & 0xfc)
-                       ND_PRINT((ndo, " [rsvd=0x%02x]", bp[0] & 0xfc));
+                       ND_PRINT((ndo, " [rsvd=0x%02x]", EXTRACT_U_1(bp) & 0xfc));
                bp += 1;
                len -= 1;
                if (len < 1)
@@ -432,13 +432,13 @@ cisco_autorp_print(netdissect_options *ndo,
                        if (len < 6)
                                goto trunc;
                        ND_TCHECK_6(bp);
-                       ND_PRINT((ndo, "%c%s%s/%d", s, bp[0] & 1 ? "!" : "",
-                                 ipaddr_string(ndo, bp + 2), bp[1]));
+                       ND_PRINT((ndo, "%c%s%s/%d", s, EXTRACT_U_1(bp) & 1 ? "!" : "",
+                                 ipaddr_string(ndo, bp + 2), EXTRACT_U_1(bp + 1)));
                        if (bp[0] & 0x02) {
                                ND_PRINT((ndo, " bidir"));
                        }
                        if (bp[0] & 0xfc) {
-                               ND_PRINT((ndo, "[rsvd=0x%02x]", bp[0] & 0xfc));
+                               ND_PRINT((ndo, "[rsvd=0x%02x]", EXTRACT_U_1(bp) & 0xfc));
                        }
                        s = ',';
                        bp += 6; len -= 6;
@@ -622,26 +622,26 @@ pimv2_addr_print(netdissect_options *ndo,
                        if (!silent) {
                                ND_PRINT((ndo, "%s", ipaddr_string(ndo, bp + 2)));
                                if (bp[1] != 32)
-                                       ND_PRINT((ndo, "/%u", bp[1]));
+                                       ND_PRINT((ndo, "/%u", EXTRACT_U_1(bp + 1)));
                        }
                }
                else if (af == AF_INET6) {
                        if (!silent) {
                                ND_PRINT((ndo, "%s", ip6addr_string(ndo, bp + 2)));
                                if (bp[1] != 128)
-                                       ND_PRINT((ndo, "/%u", bp[1]));
+                                       ND_PRINT((ndo, "/%u", EXTRACT_U_1(bp + 1)));
                        }
                }
                if (bp[0] && !silent) {
                        if (at == pimv2_group) {
-                               ND_PRINT((ndo, "(0x%02x)", bp[0]));
+                               ND_PRINT((ndo, "(0x%02x)", EXTRACT_U_1(bp)));
                        } else {
                                ND_PRINT((ndo, "(%s%s%s",
-                                       bp[0] & 0x04 ? "S" : "",
-                                       bp[0] & 0x02 ? "W" : "",
-                                       bp[0] & 0x01 ? "R" : ""));
+                                       EXTRACT_U_1(bp) & 0x04 ? "S" : "",
+                                       EXTRACT_U_1(bp) & 0x02 ? "W" : "",
+                                       EXTRACT_U_1(bp) & 0x01 ? "R" : ""));
                                if (bp[0] & 0xf8) {
-                                       ND_PRINT((ndo, "+0x%02x", bp[0] & 0xf8));
+                                       ND_PRINT((ndo, "+0x%02x", EXTRACT_U_1(bp) & 0xf8));
                                }
                                ND_PRINT((ndo, ")"));
                        }
@@ -1029,11 +1029,11 @@ pimv2_print(netdissect_options *ndo,
                if (len < 1)
                        goto trunc;
                ND_TCHECK(bp[0]);
-               ND_PRINT((ndo, " hashmlen=%d", bp[0]));
+               ND_PRINT((ndo, " hashmlen=%d", EXTRACT_U_1(bp)));
                if (len < 2)
                        goto trunc;
                ND_TCHECK(bp[2]);
-               ND_PRINT((ndo, " BSRprio=%d", bp[1]));
+               ND_PRINT((ndo, " BSRprio=%d", EXTRACT_U_1(bp + 1)));
                bp += 2;
                len -= 2;
 
@@ -1056,11 +1056,11 @@ pimv2_print(netdissect_options *ndo,
                        if (len < 1)
                                goto trunc;
                        ND_TCHECK(bp[0]);
-                       ND_PRINT((ndo, " RPcnt=%d", bp[0]));
+                       ND_PRINT((ndo, " RPcnt=%d", EXTRACT_U_1(bp)));
                        if (len < 2)
                                goto trunc;
                        ND_TCHECK(bp[1]);
-                       ND_PRINT((ndo, " FRPcnt=%d", frpcnt = bp[1]));
+                       ND_PRINT((ndo, " FRPcnt=%d", frpcnt = EXTRACT_U_1(bp + 1)));
                        if (len < 4)
                                goto trunc;
                        bp += 4;
@@ -1086,7 +1086,7 @@ pimv2_print(netdissect_options *ndo,
                                if (len < 3)
                                        goto trunc;
                                ND_TCHECK(bp[2]);
-                               ND_PRINT((ndo, ",prio=%d", bp[2]));
+                               ND_PRINT((ndo, ",prio=%d", EXTRACT_U_1(bp + 2)));
                                if (len < 4)
                                        goto trunc;
                                bp += 4;
@@ -1122,12 +1122,12 @@ pimv2_print(netdissect_options *ndo,
                if (len < 1)
                        goto trunc;
                ND_TCHECK(bp[0]);
-               ND_PRINT((ndo, " prefix-cnt=%d", bp[0]));
+               ND_PRINT((ndo, " prefix-cnt=%d", EXTRACT_U_1(bp)));
                pfxcnt = bp[0];
                if (len < 2)
                        goto trunc;
                ND_TCHECK(bp[1]);
-               ND_PRINT((ndo, " prio=%d", bp[1]));
+               ND_PRINT((ndo, " prio=%d", EXTRACT_U_1(bp + 1)));
                if (len < 4)
                        goto trunc;
                ND_TCHECK_2(bp + 2);
index 403db1d372d1d697193a7c83254b6e0997b515b0..d517e0c4576a6a0769a32a760ed2d4f984a023d5 100644 (file)
@@ -909,7 +909,7 @@ print_attr_netmask6(netdissect_options *ndo,
    ND_TCHECK2(data[0], length);
    if (data[1] > 128)
    {
-      ND_PRINT((ndo, "ERROR: netmask %u not in range (0..128)", data[1]));
+      ND_PRINT((ndo, "ERROR: netmask %u not in range (0..128)", EXTRACT_U_1(data + 1)));
       return;
    }
 
@@ -917,7 +917,7 @@ print_attr_netmask6(netdissect_options *ndo,
    if (length > 2)
       memcpy(data2, data+2, length-2);
 
-   ND_PRINT((ndo, "%s/%u", ip6addr_string(ndo, data2), data[1]));
+   ND_PRINT((ndo, "%s/%u", ip6addr_string(ndo, data2), EXTRACT_U_1(data + 1)));
 
    if (data[1] > 8 * (length - 2))
       ND_PRINT((ndo, " (inconsistent prefix length)"));
index 1e329cf4367a71107fba7dc3fc0fb194e183a3fd..419864ef28bdd7468a0ce20df848d9f32f41862c 100644 (file)
@@ -151,8 +151,8 @@ sliplink_print(netdissect_options *ndo,
                register int i;
 
                for (i = SLX_CHDR; i < SLX_CHDR + CHDR_LEN - 1; ++i)
-                       ND_PRINT((ndo, "%02x.", p[i]));
-               ND_PRINT((ndo, "%02x: ", p[SLX_CHDR + CHDR_LEN - 1]));
+                       ND_PRINT((ndo, "%02x.", EXTRACT_U_1(p + i)));
+               ND_PRINT((ndo, "%02x: ", EXTRACT_U_1(p + SLX_CHDR + CHDR_LEN - 1)));
                return;
        }
        switch (p[SLX_CHDR] & 0xf0) {
@@ -188,7 +188,7 @@ sliplink_print(netdissect_options *ndo,
                            length, dir);
                        ND_PRINT((ndo, ": "));
                } else
-                       ND_PRINT((ndo, "slip-%d!: ", p[SLX_CHDR]));
+                       ND_PRINT((ndo, "slip-%d!: ", EXTRACT_U_1(p + SLX_CHDR)));
        }
 }
 
index a9b6a4a099e667870acf7a5e0d8673df90e94345..3640b8764dbe58150a8203528dfb4dec0a2883b1 100644 (file)
@@ -837,7 +837,8 @@ print_smb(netdissect_options *ndo,
            ND_PRINT((ndo, "NTError = %s\n", nt_errstr(nterror)));
     } else {
        if (buf[5])
-           ND_PRINT((ndo, "SMBError = %s\n", smb_errstr(buf[5], EXTRACT_LE_U_2(buf + 7))));
+           ND_PRINT((ndo, "SMBError = %s\n", smb_errstr(EXTRACT_U_1(buf + 5),
+                     EXTRACT_LE_U_2(buf + 7))));
     }
 
     smboffset = 32;
index 79b297add76bd0f93a7013a168e2a720282a36c0..66b6d0cd81095af1579d30117af698be43dfa01f 100644 (file)
@@ -304,7 +304,7 @@ stp_print_mstp_bpdu(netdissect_options *ndo, const struct stp_bpdu_ *stp_bpdu,
            stp_print_bridge_id(ptr + MST_BPDU_CIST_BRIDGE_ID_OFFSET)));
 
     ND_TCHECK(ptr[MST_BPDU_CIST_REMAIN_HOPS_OFFSET]);
-    ND_PRINT((ndo, "CIST remaining-hops %d", ptr[MST_BPDU_CIST_REMAIN_HOPS_OFFSET]));
+    ND_PRINT((ndo, "CIST remaining-hops %d", EXTRACT_U_1(ptr + MST_BPDU_CIST_REMAIN_HOPS_OFFSET)));
 
     /* Dump all MSTI's */
     ND_TCHECK_2(ptr + MST_BPDU_VER3_LEN_OFFSET);
@@ -321,15 +321,15 @@ stp_print_mstp_bpdu(netdissect_options *ndo, const struct stp_bpdu_ *stp_bpdu,
             ND_PRINT((ndo, "\n\tMSTI %d, Flags [%s], port-role %s",
                    msti, bittok2str(stp_bpdu_flag_values, "none", EXTRACT_U_1(ptr + offset)),
                    tok2str(rstp_obj_port_role_values, "Unknown",
-                           RSTP_EXTRACT_PORT_ROLE(ptr[offset]))));
+                           RSTP_EXTRACT_PORT_ROLE(EXTRACT_U_1(ptr + offset)))));
             ND_PRINT((ndo, "\n\t\tMSTI regional-root-id %s, pathcost %u",
                    stp_print_bridge_id(ptr + offset +
                                        MST_BPDU_MSTI_ROOT_PRIO_OFFSET),
                    EXTRACT_BE_U_4(ptr + offset + MST_BPDU_MSTI_ROOT_PATH_COST_OFFSET)));
             ND_PRINT((ndo, "\n\t\tMSTI bridge-prio %d, port-prio %d, hops %d",
-                   ptr[offset + MST_BPDU_MSTI_BRIDGE_PRIO_OFFSET] >> 4,
-                   ptr[offset + MST_BPDU_MSTI_PORT_PRIO_OFFSET] >> 4,
-                   ptr[offset + MST_BPDU_MSTI_REMAIN_HOPS_OFFSET]));
+                   EXTRACT_U_1(ptr + offset + MST_BPDU_MSTI_BRIDGE_PRIO_OFFSET) >> 4,
+                   EXTRACT_U_1(ptr + offset + MST_BPDU_MSTI_PORT_PRIO_OFFSET) >> 4,
+                   EXTRACT_U_1(ptr + offset + MST_BPDU_MSTI_REMAIN_HOPS_OFFSET)));
 
             len -= MST_BPDU_MSTI_LENGTH;
             offset += MST_BPDU_MSTI_LENGTH;
@@ -373,14 +373,14 @@ stp_print_spb_bpdu(netdissect_options *ndo, const struct stp_bpdu_ *stp_bpdu,
             "flag %d,\n\tRestricted role-flag: %d, Format id %d cap %d, "
             "Convention id %d cap %d,\n\tEdge count %d, "
             "Agreement digest %08x%08x%08x%08x%08x\n",
-            ptr[offset + SPB_BPDU_AGREEMENT_OFFSET]>>6,
-            ptr[offset + SPB_BPDU_AGREEMENT_OFFSET]>>4 & 0x3,
-            ptr[offset + SPB_BPDU_AGREEMENT_OFFSET]>>3 & 0x1,
-            ptr[offset + SPB_BPDU_AGREEMENT_OFFSET]>>2 & 0x1,
-            ptr[offset + SPB_BPDU_AGREEMENT_FORMAT_OFFSET]>>4,
-            ptr[offset + SPB_BPDU_AGREEMENT_FORMAT_OFFSET]&0x00ff,
-            ptr[offset + SPB_BPDU_AGREEMENT_CON_OFFSET]>>4,
-            ptr[offset + SPB_BPDU_AGREEMENT_CON_OFFSET]&0x00ff,
+            EXTRACT_U_1(ptr + offset + SPB_BPDU_AGREEMENT_OFFSET)>>6,
+            EXTRACT_U_1(ptr + offset + SPB_BPDU_AGREEMENT_OFFSET)>>4 & 0x3,
+            EXTRACT_U_1(ptr + offset + SPB_BPDU_AGREEMENT_OFFSET)>>3 & 0x1,
+            EXTRACT_U_1(ptr + offset + SPB_BPDU_AGREEMENT_OFFSET)>>2 & 0x1,
+            EXTRACT_U_1(ptr + offset + SPB_BPDU_AGREEMENT_FORMAT_OFFSET)>>4,
+            EXTRACT_U_1(ptr + offset + SPB_BPDU_AGREEMENT_FORMAT_OFFSET)&0x00ff,
+            EXTRACT_U_1(ptr + offset + SPB_BPDU_AGREEMENT_CON_OFFSET)>>4,
+            EXTRACT_U_1(ptr + offset + SPB_BPDU_AGREEMENT_CON_OFFSET)&0x00ff,
             EXTRACT_BE_U_2(ptr + offset + SPB_BPDU_AGREEMENT_EDGE_OFFSET),
             EXTRACT_BE_U_4(ptr + offset + SPB_BPDU_AGREEMENT_DIGEST_OFFSET),
             EXTRACT_BE_U_4(ptr + offset + SPB_BPDU_AGREEMENT_DIGEST_OFFSET + 4),
index 8c0b132a3fd4d93afc1bd4b267729bd823a33ce1..eaa7125d82ee1271b7342436042e4b883813a46d 100644 (file)
@@ -78,7 +78,7 @@ sunatm_if_print(netdissect_options *ndo,
        }
 
        if (ndo->ndo_eflag) {
-               ND_PRINT((ndo, p[DIR_POS] & 0x80 ? "Tx: " : "Rx: "));
+               ND_PRINT((ndo, EXTRACT_U_1(p + DIR_POS) & 0x80 ? "Tx: " : "Rx: "));
        }
 
        switch (p[DIR_POS] & 0x0f) {
index 2fae1e2bd4e82799e9b331264eb661b291c91b6f..59e343aec10c53e7ab9a79a0b8bb671d74ec811c 100644 (file)
@@ -531,19 +531,19 @@ tcp_print(netdissect_options *ndo,
                                 case CANT_CHECK_SIGNATURE:
                                         ND_PRINT((ndo, "can't check - "));
                                         for (i = 0; i < TCP_SIGLEN; ++i)
-                                                ND_PRINT((ndo, "%02x", cp[i]));
+                                                ND_PRINT((ndo, "%02x", EXTRACT_U_1(cp + i)));
                                         break;
                                 }
 #else
                                 for (i = 0; i < TCP_SIGLEN; ++i)
-                                        ND_PRINT((ndo, "%02x", cp[i]));
+                                        ND_PRINT((ndo, "%02x", EXTRACT_U_1(cp + i)));
 #endif
                                 break;
 
                         case TCPOPT_SCPS:
                                 datalen = 2;
                                 LENCHECK(datalen);
-                                ND_PRINT((ndo, " cap %02x id %u", cp[0], cp[1]));
+                                ND_PRINT((ndo, " cap %02x id %u", EXTRACT_U_1(cp), EXTRACT_U_1(cp + 1)));
                                 break;
 
                         case TCPOPT_TCPAO:
@@ -557,14 +557,14 @@ tcp_print(netdissect_options *ndo,
                                         ND_PRINT((ndo, " invalid"));
                                 } else {
                                         LENCHECK(1);
-                                        ND_PRINT((ndo, " keyid %u", cp[0]));
+                                        ND_PRINT((ndo, " keyid %u", EXTRACT_U_1(cp)));
                                         LENCHECK(2);
-                                        ND_PRINT((ndo, " rnextkeyid %u", cp[1]));
+                                        ND_PRINT((ndo, " rnextkeyid %u", EXTRACT_U_1(cp + 1)));
                                         if (datalen > 2) {
                                                 ND_PRINT((ndo, " mac 0x"));
                                                 for (i = 2; i < datalen; i++) {
                                                         LENCHECK(i + 1);
-                                                        ND_PRINT((ndo, "%02x", cp[i]));
+                                                        ND_PRINT((ndo, "%02x", EXTRACT_U_1(cp + i)));
                                                 }
                                         }
                                 }
@@ -633,7 +633,7 @@ tcp_print(netdissect_options *ndo,
                                         ND_PRINT((ndo, " 0x"));
                                 for (i = 0; i < datalen; ++i) {
                                         LENCHECK(i + 1);
-                                        ND_PRINT((ndo, "%02x", cp[i]));
+                                        ND_PRINT((ndo, "%02x", EXTRACT_U_1(cp + i)));
                                 }
                                 break;
                         }
@@ -829,7 +829,7 @@ print_tcp_fastopen_option(netdissect_options *ndo, register const u_char *cp,
                 } else {
                         ND_PRINT((ndo, " cookie "));
                         for (i = 0; i < datalen; ++i)
-                                ND_PRINT((ndo, "%02x", cp[i]));
+                                ND_PRINT((ndo, "%02x", EXTRACT_U_1(cp + i)));
                 }
         }
 }
index 73eef9a28de85c02ddb21f19972ae82b11717d3f..fe3104f92dd57e99ce3cb4a208f002128c066196 100644 (file)
@@ -120,13 +120,13 @@ vrrp_print(netdissect_options *ndo,
        if (version < 2 || version > 3 || type != VRRP_TYPE_ADVERTISEMENT)
                return;
        ND_TCHECK(bp[2]);
-       ND_PRINT((ndo, ", vrid %u, prio %u", bp[1], bp[2]));
+       ND_PRINT((ndo, ", vrid %u, prio %u", EXTRACT_U_1(bp + 1), EXTRACT_U_1(bp + 2)));
        ND_TCHECK(bp[5]);
 
        if (version == 2) {
                auth_type = bp[4];
                ND_PRINT((ndo, ", authtype %s", tok2str(auth2str, NULL, auth_type)));
-               ND_PRINT((ndo, ", intvl %us, length %u", bp[5], len));
+               ND_PRINT((ndo, ", intvl %us, length %u", EXTRACT_U_1(bp + 5), len));
        } else { /* version == 3 */
                uint16_t intvl = (bp[4] & 0x0f) << 8 | bp[5];
                ND_PRINT((ndo, ", intvl %ucs, length %u", intvl, len));