X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/3a7639e545c0543bcec19c4321dd3ba397fbe6fa..0f328b4aa16b0b47f05a85c440ce1d07719e3cac:/print-snmp.c diff --git a/print-snmp.c b/print-snmp.c index ec43a4dd..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++; @@ -771,7 +771,7 @@ asn1_print(netdissect_options *ndo, for (; i-- > 0; p++) { ND_TCHECK_1(p); - o = (o << ASN_SHIFT7) + (*p & ~ASN_BIT8); + o = (o << ASN_SHIFT7) + (EXTRACT_U_1(p) & ~ASN_BIT8); if (EXTRACT_U_1(p) & ASN_LONGLEN) continue; @@ -923,7 +923,7 @@ smi_decode_oid(netdissect_options *ndo, for (*oidlen = 0; i-- > 0; p++) { ND_TCHECK_1(p); - o = (o << ASN_SHIFT7) + (*p & ~ASN_BIT8); + 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));