X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/451ac4c753933eca8ffd5fd5192a03334520d789..0f328b4aa16b0b47f05a85c440ce1d07719e3cac:/print-snmp.c diff --git a/print-snmp.c b/print-snmp.c index 0c90132b..1e098dbd 100644 --- a/print-snmp.c +++ b/print-snmp.c @@ -444,8 +444,8 @@ asn1_parse(netdissect_options *ndo, class = form >> 1; /* bits 7&6 -> bits 1&0, range 0-3 */ form &= 0x1; /* bit 5 -> bit 0, range 0-1 */ #else - form = (u_char)(*p & ASN_FORM_BITS) >> ASN_FORM_SHIFT; - class = (u_char)(*p & ASN_CLASS_BITS) >> ASN_CLASS_SHIFT; + form = (u_char)(EXTRACT_U_1(p) & ASN_FORM_BITS) >> ASN_FORM_SHIFT; + class = (u_char)(EXTRACT_U_1(p) & ASN_CLASS_BITS) >> ASN_CLASS_SHIFT; #endif elem->form = form; elem->class = class; @@ -470,7 +470,7 @@ asn1_parse(netdissect_options *ndo, ND_PRINT((ndo, "[Xtagfield?]")); return -1; } - id = (id << 7) | (*p & ~ASN_BIT8); + id = (id << 7) | (EXTRACT_U_1(p) & ~ASN_BIT8); len--; hdr++; p++; @@ -491,7 +491,7 @@ asn1_parse(netdissect_options *ndo, return -1; } ND_TCHECK_1(p); - elem->asnlen = *p; + elem->asnlen = EXTRACT_U_1(p); p++; len--; hdr++; if (elem->asnlen & ASN_BIT8) { uint32_t noct = elem->asnlen % ASN_BIT8; @@ -543,7 +543,7 @@ asn1_parse(netdissect_options *ndo, ND_PRINT((ndo, "[asnlen=0]")); return -1; } - if (*p & ASN_BIT8) /* negative */ + if (EXTRACT_U_1(p) & ASN_BIT8) /* negative */ data = -1; for (i = elem->asnlen; i-- > 0; p++) data = (data << ASN_SHIFT8) | EXTRACT_U_1(p); @@ -771,8 +771,8 @@ asn1_print(netdissect_options *ndo, for (; i-- > 0; p++) { ND_TCHECK_1(p); - o = (o << ASN_SHIFT7) + (*p & ~ASN_BIT8); - if (*p & ASN_LONGLEN) + o = (o << ASN_SHIFT7) + (EXTRACT_U_1(p) & ~ASN_BIT8); + if (EXTRACT_U_1(p) & ASN_LONGLEN) continue; /* @@ -923,8 +923,8 @@ smi_decode_oid(netdissect_options *ndo, for (*oidlen = 0; i-- > 0; p++) { ND_TCHECK_1(p); - o = (o << ASN_SHIFT7) + (*p & ~ASN_BIT8); - if (*p & ASN_LONGLEN) + o = (o << ASN_SHIFT7) + (EXTRACT_U_1(p) & ~ASN_BIT8); + if (EXTRACT_U_1(p) & ASN_LONGLEN) continue; /* @@ -1798,7 +1798,7 @@ v3msg_print(netdissect_options *ndo, ND_PRINT((ndo, "[msgFlags size %d]", elem.asnlen)); return; } - flags = elem.data.str[0]; + flags = EXTRACT_U_1(elem.data.str); if (flags != 0x00 && flags != 0x01 && flags != 0x03 && flags != 0x04 && flags != 0x05 && flags != 0x07) { ND_PRINT((ndo, "[msgFlags=0x%02X]", flags));