From: Francois-Xavier Le Bail Date: Sun, 3 Dec 2017 17:18:58 +0000 (+0100) Subject: Use more the ND_TCHECK_1() macro X-Git-Tag: tcpdump-4.99-bp~1676 X-Git-Url: https://git.tcpdump.org/tcpdump/commitdiff_plain/00b189d27cd235c958497d9b1aca6d3addd55d43 Use more the ND_TCHECK_1() macro --- diff --git a/print-atm.c b/print-atm.c index 43f61fcd..616bc4f8 100644 --- a/print-atm.c +++ b/print-atm.c @@ -349,14 +349,14 @@ sig_print(netdissect_options *ndo, { uint32_t call_ref; - ND_TCHECK(p[PROTO_POS]); + ND_TCHECK_1(p + PROTO_POS); if (EXTRACT_U_1(p + PROTO_POS) == Q2931) { /* * protocol:Q.2931 for User to Network Interface * (UNI 3.1) signalling */ ND_PRINT((ndo, "Q.2931")); - ND_TCHECK(p[MSG_TYPE_POS]); + ND_TCHECK_1(p + MSG_TYPE_POS); ND_PRINT((ndo, ":%s ", tok2str(msgtype2str, "msgtype#%d", EXTRACT_U_1(p + MSG_TYPE_POS)))); diff --git a/print-bgp.c b/print-bgp.c index 4c9992d0..9704081c 100644 --- a/print-bgp.c +++ b/print-bgp.c @@ -538,7 +538,7 @@ decode_prefix4(netdissect_options *ndo, struct in_addr addr; u_int plen, plenbytes; - ND_TCHECK(pptr[0]); + ND_TCHECK_1(pptr); ITEMCHECK(1); plen = pptr[0]; if (32 < plen) @@ -770,7 +770,7 @@ decode_rt_routing_info(netdissect_options *ndo, char asbuf[sizeof(astostr)]; /* bgp_vpn_rd_print() overwrites astostr */ /* NLRI "prefix length" from RFC 2858 Section 4. */ - ND_TCHECK(pptr[0]); + ND_TCHECK_1(pptr); plen = pptr[0]; /* get prefix length */ /* NLRI "prefix" (ibid), valid lengths are { 0, 32, 33, ..., 96 } bits. @@ -824,7 +824,7 @@ decode_labeled_vpn_prefix4(netdissect_options *ndo, struct in_addr addr; u_int plen; - ND_TCHECK(pptr[0]); + ND_TCHECK_1(pptr); plen = pptr[0]; /* get prefix length */ if ((24+64) > plen) @@ -876,7 +876,7 @@ decode_mdt_vpn_nlri(netdissect_options *ndo, const u_char *rd; const u_char *vpn_ip; - ND_TCHECK(pptr[0]); + ND_TCHECK_1(pptr); /* if the NLRI is not predefined length, quit.*/ if (EXTRACT_U_1(pptr) != MDT_VPN_NLRI_LEN * 8) @@ -1096,7 +1096,7 @@ decode_labeled_vpn_l2(netdissect_options *ndo, } ttlv_len=ttlv_len/8+1; /* how many bytes do we need to read ? */ while (ttlv_len>0) { - ND_TCHECK(pptr[0]); + ND_TCHECK_1(pptr); if (buflen!=0) { stringlen=snprintf(buf,buflen, "%02x", EXTRACT_U_1(pptr)); @@ -1136,7 +1136,7 @@ decode_prefix6(netdissect_options *ndo, struct in6_addr addr; u_int plen, plenbytes; - ND_TCHECK(pd[0]); + ND_TCHECK_1(pd); ITEMCHECK(1); plen = pd[0]; if (128 < plen) @@ -1214,7 +1214,7 @@ decode_labeled_vpn_prefix6(netdissect_options *ndo, struct in6_addr addr; u_int plen; - ND_TCHECK(pptr[0]); + ND_TCHECK_1(pptr); plen = pptr[0]; /* get prefix length */ if ((24+64) > plen) @@ -1253,7 +1253,7 @@ decode_clnp_prefix(netdissect_options *ndo, uint8_t addr[19]; u_int plen; - ND_TCHECK(pptr[0]); + ND_TCHECK_1(pptr); plen = pptr[0]; /* get prefix length */ if (152 < plen) @@ -1283,7 +1283,7 @@ decode_labeled_vpn_clnp_prefix(netdissect_options *ndo, uint8_t addr[19]; u_int plen; - ND_TCHECK(pptr[0]); + ND_TCHECK_1(pptr); plen = pptr[0]; /* get prefix length */ if ((24+64) > plen) @@ -1342,7 +1342,7 @@ bgp_attr_get_as_size(netdissect_options *ndo, * each. */ while (tptr < pptr + len) { - ND_TCHECK(tptr[0]); + ND_TCHECK_1(tptr); /* * If we do not find a valid segment type, our guess might be wrong. @@ -1350,7 +1350,7 @@ bgp_attr_get_as_size(netdissect_options *ndo, if (EXTRACT_U_1(tptr) < BGP_AS_SEG_TYPE_MIN || EXTRACT_U_1(tptr) > BGP_AS_SEG_TYPE_MAX) { goto trunc; } - ND_TCHECK(tptr[1]); + ND_TCHECK_1(tptr + 1); tptr += 2 + tptr[1] * 2; } @@ -1430,10 +1430,10 @@ bgp_attr_print(netdissect_options *ndo, as_size = bgp_attr_get_as_size(ndo, atype, pptr, len); while (tptr < pptr + len) { - ND_TCHECK(tptr[0]); + ND_TCHECK_1(tptr); ND_PRINT((ndo, "%s", tok2str(bgp_as_path_segment_open_values, "?", EXTRACT_U_1(tptr)))); - ND_TCHECK(tptr[1]); + ND_TCHECK_1(tptr + 1); for (i = 0; i < tptr[1] * as_size; i += as_size) { ND_TCHECK2(tptr[2 + i], as_size); ND_PRINT((ndo, "%s ", @@ -1442,10 +1442,10 @@ bgp_attr_print(netdissect_options *ndo, EXTRACT_BE_U_2(tptr + i + 2) : EXTRACT_BE_U_4(tptr + i + 2)))); } - ND_TCHECK(tptr[0]); + ND_TCHECK_1(tptr); ND_PRINT((ndo, "%s", tok2str(bgp_as_path_segment_close_values, "?", EXTRACT_U_1(tptr)))); - ND_TCHECK(tptr[1]); + ND_TCHECK_1(tptr + 1); tptr += 2 + tptr[1] * as_size; } break; @@ -1605,7 +1605,7 @@ bgp_attr_print(netdissect_options *ndo, tptr +=3; - ND_TCHECK(tptr[0]); + ND_TCHECK_1(tptr); nhlen = tptr[0]; tlen = nhlen; tptr++; @@ -1738,14 +1738,14 @@ bgp_attr_print(netdissect_options *ndo, ND_PRINT((ndo, ", nh-length: %u", nhlen)); tptr += tlen; - ND_TCHECK(tptr[0]); + ND_TCHECK_1(tptr); snpa = tptr[0]; tptr++; if (snpa) { ND_PRINT((ndo, "\n\t %u SNPA", snpa)); for (/*nothing*/; snpa > 0; snpa--) { - ND_TCHECK(tptr[0]); + ND_TCHECK_1(tptr); ND_PRINT((ndo, "\n\t %d bytes", EXTRACT_U_1(tptr))); tptr += tptr[0] + 1; } diff --git a/print-carp.c b/print-carp.c index 45ed4f0f..622d308e 100644 --- a/print-carp.c +++ b/print-carp.c @@ -51,7 +51,7 @@ carp_print(netdissect_options *ndo, register const u_char *bp, register u_int le int version, type; const char *type_s; - ND_TCHECK(bp[0]); + ND_TCHECK_1(bp); version = (bp[0] & 0xf0) >> 4; type = bp[0] & 0x0f; if (type == 1) @@ -63,8 +63,8 @@ carp_print(netdissect_options *ndo, register const u_char *bp, register u_int le ND_PRINT((ndo, "[ttl=%d!] ", ttl)); if (version != 2 || type != 1) return; - ND_TCHECK(bp[2]); - ND_TCHECK(bp[5]); + ND_TCHECK_1(bp + 2); + ND_TCHECK_1(bp + 5); ND_PRINT((ndo, "vhid=%d advbase=%d advskew=%d authlen=%d ", EXTRACT_U_1(bp + 1), EXTRACT_U_1(bp + 5), EXTRACT_U_1(bp + 2), EXTRACT_U_1(bp + 3))); if (ndo->ndo_vflag) { diff --git a/print-icmp6.c b/print-icmp6.c index df893567..dabec424 100644 --- a/print-icmp6.c +++ b/print-icmp6.c @@ -1490,7 +1490,7 @@ mldv2_query_print(netdissect_options *ndo, const u_char *bp, u_int len) ND_PRINT((ndo," [gaddr %s", ip6addr_string(ndo, bp + 8))); if (ndo->ndo_vflag) { - ND_TCHECK(bp[25]); + ND_TCHECK_1(bp + 25); if (EXTRACT_U_1(bp + 24) & 0x08) { ND_PRINT((ndo," sflag")); } @@ -1756,7 +1756,7 @@ icmp6_nodeinfo_print(netdissect_options *ndo, u_int icmp6len, const u_char *bp, ND_PRINT((ndo,", ")); ND_PRINT((ndo,"DNS name")); cp = (const u_char *)(ni6 + 1) + 4; - ND_TCHECK(cp[0]); + ND_TCHECK_1(cp); if (EXTRACT_U_1(cp) == ep - cp - 1) { /* icmp-name-lookup-03, pascal string */ if (ndo->ndo_vflag) diff --git a/print-ip.c b/print-ip.c index 1caa93c4..9be07f20 100644 --- a/print-ip.c +++ b/print-ip.c @@ -67,7 +67,7 @@ ip_printroute(netdissect_options *ndo, } if ((length + 1) & 3) ND_PRINT((ndo, " [bad length %u]", length)); - ND_TCHECK(cp[2]); + ND_TCHECK_1(cp + 2); ptr = cp[2] - 1; if (ptr < 3 || ((ptr + 1) & 3) || ptr > length + 1) ND_PRINT((ndo, " [bad ptr %u]", EXTRACT_U_1(cp + 2))); @@ -113,7 +113,7 @@ ip_finddst(netdissect_options *ndo, else if (tt == IPOPT_NOP) len = 1; else { - ND_TCHECK(cp[1]); + ND_TCHECK_1(cp + 1); len = cp[1]; if (len < 2) break; @@ -185,12 +185,12 @@ ip_printts(netdissect_options *ndo, hoplen = ((cp[3]&0xF) != IPOPT_TS_TSONLY) ? 8 : 4; if ((length - 4) & (hoplen-1)) ND_PRINT((ndo, "[bad length %u]", length)); - ND_TCHECK(cp[2]); + ND_TCHECK_1(cp + 2); ptr = cp[2] - 1; len = 0; if (ptr < 4 || ((ptr - 4) & (hoplen-1)) || ptr > length + 1) ND_PRINT((ndo, "[bad ptr %u]", EXTRACT_U_1(cp + 2))); - ND_TCHECK(cp[3]); + ND_TCHECK_1(cp + 3); switch (EXTRACT_U_1(cp + 3)&0xF) { case IPOPT_TS_TSONLY: ND_PRINT((ndo, "TSONLY")); @@ -265,7 +265,7 @@ ip_optprint(netdissect_options *ndo, option_len = 1; else { - ND_TCHECK(cp[1]); + ND_TCHECK_1(cp + 1); option_len = cp[1]; if (option_len < 2) { ND_PRINT((ndo, " [bad length %u]", option_len)); @@ -301,7 +301,7 @@ ip_optprint(netdissect_options *ndo, ND_PRINT((ndo, " [bad length %u]", option_len)); break; } - ND_TCHECK(cp[3]); + ND_TCHECK_1(cp + 3); if (EXTRACT_BE_U_2(cp + 2) != 0) ND_PRINT((ndo, " value %u", EXTRACT_BE_U_2(cp + 2))); break; diff --git a/print-isakmp.c b/print-isakmp.c index 641ee734..ba1f8fec 100644 --- a/print-isakmp.c +++ b/print-isakmp.c @@ -918,7 +918,7 @@ ikev1_attrmap_print(netdissect_options *ndo, int totlen; uint32_t t, v; - ND_TCHECK(p[0]); + ND_TCHECK_1(p); if (EXTRACT_U_1(p) & 0x80) totlen = 4; else { @@ -969,7 +969,7 @@ ikev1_attr_print(netdissect_options *ndo, const u_char *p, const u_char *ep2) int totlen; uint32_t t; - ND_TCHECK(p[0]); + ND_TCHECK_1(p); if (EXTRACT_U_1(p) & 0x80) totlen = 4; else { @@ -3095,7 +3095,7 @@ isakmp_rfc3948_print(netdissect_options *ndo, const u_char *bp, u_int length, const u_char *bp2) { - ND_TCHECK(bp[0]); + ND_TCHECK_1(bp); if(length == 1 && EXTRACT_U_1(bp)==0xff) { ND_PRINT((ndo, "isakmp-nat-keep-alive")); return; @@ -3104,7 +3104,7 @@ 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 diff --git a/print-juniper.c b/print-juniper.c index e36b0a8f..f6597cd9 100644 --- a/print-juniper.c +++ b/print-juniper.c @@ -1317,7 +1317,7 @@ juniper_parse_header(netdissect_options *ndo, l2info->caplen -= l2info->header_len; /* search through the cookie table and copy values matching for our PIC type */ - ND_TCHECK(p[0]); + ND_TCHECK_1(p); while (lp->s != NULL) { if (lp->pictype == l2info->pictype) { diff --git a/print-mobility.c b/print-mobility.c index 76964436..61768a9e 100644 --- a/print-mobility.c +++ b/print-mobility.c @@ -118,12 +118,12 @@ mobility_opt_print(netdissect_options *ndo, unsigned i, optlen; for (i = 0; i < len; i += optlen) { - ND_TCHECK(bp[i]); + ND_TCHECK_1(bp + i); if (EXTRACT_U_1(bp + i) == IP6MOPT_PAD1) optlen = 1; else { if (i + 1 < len) { - ND_TCHECK(bp[i + 1]); + ND_TCHECK_1(bp + i + 1); optlen = bp[i + 1] + 2; } else @@ -131,7 +131,7 @@ mobility_opt_print(netdissect_options *ndo, } if (i + optlen > len) goto trunc; - ND_TCHECK(bp[i + optlen]); + ND_TCHECK_1(bp + i + optlen); switch (EXTRACT_U_1(bp + i)) { case IP6MOPT_PAD1: diff --git a/print-pim.c b/print-pim.c index 8c302829..ee04fbd3 100644 --- a/print-pim.c +++ b/print-pim.c @@ -253,7 +253,7 @@ pimv1_print(netdissect_options *ndo, { register u_char type; - ND_TCHECK(bp[1]); + ND_TCHECK_1(bp + 1); type = bp[1]; ND_PRINT((ndo, " %s", tok2str(pimv1_type_str, "[type %u]", type))); @@ -325,7 +325,7 @@ pimv1_print(netdissect_options *ndo, } break; } - ND_TCHECK(bp[4]); + ND_TCHECK_1(bp + 4); if ((EXTRACT_U_1(bp + 4) >> 4) != 1) ND_PRINT((ndo, " [v%d]", EXTRACT_U_1(bp + 4) >> 4)); return; @@ -351,7 +351,7 @@ cisco_autorp_print(netdissect_options *ndo, if (len < 8) goto trunc; - ND_TCHECK(bp[0]); + ND_TCHECK_1(bp); ND_PRINT((ndo, " auto-rp ")); type = bp[0]; switch (type) { @@ -366,7 +366,7 @@ cisco_autorp_print(netdissect_options *ndo, break; } - ND_TCHECK(bp[1]); + ND_TCHECK_1(bp + 1); numrps = bp[1]; ND_TCHECK_2(bp + 2); @@ -406,7 +406,7 @@ cisco_autorp_print(netdissect_options *ndo, len -= 4; if (len < 1) goto trunc; - ND_TCHECK(bp[0]); + ND_TCHECK_1(bp); switch (EXTRACT_U_1(bp) & 0x3) { case 0: ND_PRINT((ndo, " PIMv?")); break; @@ -423,7 +423,7 @@ cisco_autorp_print(netdissect_options *ndo, len -= 1; if (len < 1) goto trunc; - ND_TCHECK(bp[0]); + ND_TCHECK_1(bp); nentries = bp[0]; bp += 1; len -= 1; @@ -566,7 +566,7 @@ pimv2_addr_print(netdissect_options *ndo, if (addr_len == 0) { if (len < 2) goto trunc; - ND_TCHECK(bp[1]); + ND_TCHECK_1(bp + 1); switch (EXTRACT_U_1(bp)) { case 1: af = AF_INET; @@ -1029,11 +1029,11 @@ pimv2_print(netdissect_options *ndo, len -= 2; if (len < 1) goto trunc; - ND_TCHECK(bp[0]); + ND_TCHECK_1(bp); ND_PRINT((ndo, " hashmlen=%d", EXTRACT_U_1(bp))); if (len < 2) goto trunc; - ND_TCHECK(bp[2]); + ND_TCHECK_1(bp + 2); ND_PRINT((ndo, " BSRprio=%d", EXTRACT_U_1(bp + 1))); bp += 2; len -= 2; @@ -1056,11 +1056,11 @@ pimv2_print(netdissect_options *ndo, /* RP-Count, Frag RP-Cnt, and rsvd */ if (len < 1) goto trunc; - ND_TCHECK(bp[0]); + ND_TCHECK_1(bp); ND_PRINT((ndo, " RPcnt=%d", EXTRACT_U_1(bp))); if (len < 2) goto trunc; - ND_TCHECK(bp[1]); + ND_TCHECK_1(bp + 1); ND_PRINT((ndo, " FRPcnt=%d", frpcnt = EXTRACT_U_1(bp + 1))); if (len < 4) goto trunc; @@ -1086,7 +1086,7 @@ pimv2_print(netdissect_options *ndo, EXTRACT_BE_U_2(bp)); if (len < 3) goto trunc; - ND_TCHECK(bp[2]); + ND_TCHECK_1(bp + 2); ND_PRINT((ndo, ",prio=%d", EXTRACT_U_1(bp + 2))); if (len < 4) goto trunc; @@ -1122,12 +1122,12 @@ pimv2_print(netdissect_options *ndo, /* Prefix-Cnt, Priority, and Holdtime */ if (len < 1) goto trunc; - ND_TCHECK(bp[0]); + ND_TCHECK_1(bp); ND_PRINT((ndo, " prefix-cnt=%d", EXTRACT_U_1(bp))); pfxcnt = bp[0]; if (len < 2) goto trunc; - ND_TCHECK(bp[1]); + ND_TCHECK_1(bp + 1); ND_PRINT((ndo, " prio=%d", EXTRACT_U_1(bp + 1))); if (len < 4) goto trunc; diff --git a/print-smb.c b/print-smb.c index 89f0fd6b..a4d0c931 100644 --- a/print-smb.c +++ b/print-smb.c @@ -179,7 +179,7 @@ print_trans2(netdissect_options *ndo, const char *f1 = NULL, *f2 = NULL; int pcnt, dcnt; - ND_TCHECK(words[0]); + ND_TCHECK_1(words); if (request) { ND_TCHECK_2(w + (14 * 2)); pcnt = EXTRACT_LE_U_2(w + 9 * 2); @@ -244,7 +244,7 @@ print_browse(netdissect_options *ndo, const u_char *maxbuf = data + datalen; int command; - ND_TCHECK(data[0]); + ND_TCHECK_1(data); command = data[0]; smb_fdata(ndo, param, "BROWSE PACKET\n|Param ", param+paramlen, unicodestr); @@ -400,7 +400,7 @@ print_negprot(netdissect_options *ndo, u_int wct, bcc; const char *f1 = NULL, *f2 = NULL; - ND_TCHECK(words[0]); + ND_TCHECK_1(words); wct = words[0]; if (request) f2 = "*|Dialect=[Y]\n"; @@ -442,7 +442,7 @@ print_sesssetup(netdissect_options *ndo, u_int wct, bcc; const char *f1 = NULL, *f2 = NULL; - ND_TCHECK(words[0]); + ND_TCHECK_1(words); wct = words[0]; if (request) { if (wct == 10) @@ -488,11 +488,11 @@ print_lockingandx(netdissect_options *ndo, const u_char *maxwords; const char *f1 = NULL, *f2 = NULL; - ND_TCHECK(words[0]); + ND_TCHECK_1(words); wct = words[0]; if (request) { f1 = "Com2=[w]\nOff2=[d]\nHandle=[d]\nLockType=[w]\nTimeOut=[D]\nUnlockCount=[d]\nLockCount=[d]\n"; - ND_TCHECK(words[7]); + ND_TCHECK_1(words + 7); if (EXTRACT_U_1(words + 7) & 0x10) f2 = "*Process=[d]\n[P2]Offset=[M]\nLength=[M]\n"; else @@ -807,7 +807,7 @@ print_smb(netdissect_options *ndo, "[P4]SMB Command = [B]\nError class = [BP1]\nError code = [d]\nFlags1 = [B]\nFlags2 = [B][P13]\nTree ID = [d]\nProc ID = [d]\nUID = [d]\nMID = [d]\nWord Count = [b]\n"; int smboffset; - ND_TCHECK(buf[9]); + ND_TCHECK_1(buf + 9); request = (buf[9] & 0x80) ? 0 : 1; startbuf = buf; @@ -850,7 +850,7 @@ print_smb(netdissect_options *ndo, int newsmboffset; words = buf + smboffset; - ND_TCHECK(words[0]); + ND_TCHECK_1(words); wct = words[0]; data = words + 1 + wct * 2; maxwords = min(data, maxbuf); @@ -899,7 +899,7 @@ print_smb(netdissect_options *ndo, break; if (wct == 0) break; - ND_TCHECK(words[1]); + ND_TCHECK_1(words + 1); command = words[1]; if (command == 0xFF) break; @@ -1385,7 +1385,7 @@ netbeui_print(netdissect_options *ndo, if (maxbuf > ndo->ndo_snapend) maxbuf = ndo->ndo_snapend; - ND_TCHECK(data[4]); + ND_TCHECK_1(data + 4); len = EXTRACT_LE_U_2(data); command = data[4]; data2 = data + len; diff --git a/print-stp.c b/print-stp.c index ff8ba848..f0b24f76 100644 --- a/print-stp.c +++ b/print-stp.c @@ -305,7 +305,7 @@ stp_print_mstp_bpdu(netdissect_options *ndo, const struct stp_bpdu_ *stp_bpdu, ND_PRINT((ndo, "\n\tCIST bridge-id %s, ", stp_print_bridge_id(ptr + MST_BPDU_CIST_BRIDGE_ID_OFFSET))); - ND_TCHECK(ptr[MST_BPDU_CIST_REMAIN_HOPS_OFFSET]); + ND_TCHECK_1(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 */ diff --git a/print-vrrp.c b/print-vrrp.c index fe3104f9..f02b28bd 100644 --- a/print-vrrp.c +++ b/print-vrrp.c @@ -110,7 +110,7 @@ vrrp_print(netdissect_options *ndo, int version, type, auth_type = VRRP_AUTH_NONE; /* keep compiler happy */ const char *type_s; - ND_TCHECK(bp[0]); + ND_TCHECK_1(bp); version = (bp[0] & 0xf0) >> 4; type = bp[0] & 0x0f; type_s = tok2str(type2str, "unknown type (%u)", type); @@ -119,9 +119,9 @@ vrrp_print(netdissect_options *ndo, ND_PRINT((ndo, ", (ttl %u)", ttl)); if (version < 2 || version > 3 || type != VRRP_TYPE_ADVERTISEMENT) return; - ND_TCHECK(bp[2]); + ND_TCHECK_1(bp + 2); ND_PRINT((ndo, ", vrid %u, prio %u", EXTRACT_U_1(bp + 1), EXTRACT_U_1(bp + 2))); - ND_TCHECK(bp[5]); + ND_TCHECK_1(bp + 5); if (version == 2) { auth_type = bp[4]; @@ -162,13 +162,13 @@ vrrp_print(netdissect_options *ndo, c = ' '; bp += 8; for (i = 0; i < naddrs; i++) { - ND_TCHECK(bp[3]); + ND_TCHECK_1(bp + 3); ND_PRINT((ndo, "%c%s", c, ipaddr_string(ndo, bp))); c = ','; bp += 4; } if (version == 2 && auth_type == VRRP_AUTH_SIMPLE) { /* simple text password */ - ND_TCHECK(bp[7]); + ND_TCHECK_1(bp + 7); ND_PRINT((ndo, " auth \"")); if (fn_printn(ndo, bp, 8, ndo->ndo_snapend)) { ND_PRINT((ndo, "\"")); diff --git a/smbutil.c b/smbutil.c index 54f3227b..0ec88233 100644 --- a/smbutil.c +++ b/smbutil.c @@ -282,7 +282,7 @@ smb_print_data(netdissect_options *ndo, const unsigned char *buf, int len) return; ND_PRINT((ndo, "[%03X] ", i)); for (i = 0; i < len; /*nothing*/) { - ND_TCHECK(buf[i]); + ND_TCHECK_1(buf + i); ND_PRINT((ndo, "%02X ", EXTRACT_U_1(buf + i) & 0xff)); i++; if (i%8 == 0) @@ -354,7 +354,7 @@ unistr(netdissect_options *ndo, * Skip padding that puts the string on an even boundary. */ if (((s - startbuf) % 2) != 0) { - ND_TCHECK(s[0]); + ND_TCHECK_1(s); s++; } } @@ -366,7 +366,7 @@ unistr(netdissect_options *ndo, sp = s; if (!use_unicode) { for (;;) { - ND_TCHECK(sp[0]); + ND_TCHECK_1(sp); *len += 1; if (EXTRACT_U_1(sp) == 0) break; @@ -391,7 +391,7 @@ unistr(netdissect_options *ndo, } if (!use_unicode) { while (strsize != 0) { - ND_TCHECK(s[0]); + ND_TCHECK_1(s); if (l >= MAX_UNISTR_SIZE) break; if (ND_ISPRINT(EXTRACT_U_1(s))) @@ -444,7 +444,7 @@ smb_fdata1(netdissect_options *ndo, while (*fmt && buf