X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/f7606784dba04b65edbd2f1582465aab2266ce7f..f68c3e3ec0113a70c35d5a76d42096e8bdb40ae7:/print-snmp.c diff --git a/print-snmp.c b/print-snmp.c index a729ea0a..99df8476 100644 --- a/print-snmp.c +++ b/print-snmp.c @@ -438,9 +438,9 @@ asn1_parse(netdissect_options *ndo, * +---+---+---+---+---+---+---+---+ * 7 6 5 4 3 2 1 0 */ - id = EXTRACT_8BITS(p) & ASN_ID_BITS; /* lower 5 bits, range 00-1f */ + id = EXTRACT_U_1(p) & ASN_ID_BITS; /* lower 5 bits, range 00-1f */ #ifdef notdef - form = (EXTRACT_8BITS(p) & 0xe0) >> 5; /* move upper 3 bits to lower 3 */ + form = (EXTRACT_U_1(p) & 0xe0) >> 5; /* move upper 3 bits to lower 3 */ class = form >> 1; /* bits 7&6 -> bits 1&0, range 0-3 */ form &= 0x1; /* bit 5 -> bit 0, range 0-1 */ #else @@ -481,7 +481,7 @@ asn1_parse(netdissect_options *ndo, return -1; } ND_TCHECK(*p); - elem->id = id = (id << 7) | *p; + elem->id = id = (id << 7) | EXTRACT_U_1(p); --len; ++hdr; ++p; @@ -501,8 +501,10 @@ asn1_parse(netdissect_options *ndo, return -1; } ND_TCHECK2(*p, noct); - for (; noct-- > 0; len--, hdr++) - elem->asnlen = (elem->asnlen << ASN_SHIFT8) | *p++; + for (; noct-- > 0; len--, hdr++) { + elem->asnlen = (elem->asnlen << ASN_SHIFT8) | EXTRACT_U_1(p); + p++; + } } if (len < elem->asnlen) { ND_PRINT((ndo, "[len%dasnlen)); @@ -544,7 +546,7 @@ asn1_parse(netdissect_options *ndo, if (*p & ASN_BIT8) /* negative */ data = -1; for (i = elem->asnlen; i-- > 0; p++) - data = (data << ASN_SHIFT8) | *p; + data = (data << ASN_SHIFT8) | EXTRACT_U_1(p); elem->data.integer = data; break; } @@ -581,7 +583,7 @@ asn1_parse(netdissect_options *ndo, elem->type = BE_UNS; data = 0; for (i = elem->asnlen; i-- > 0; p++) - data = (data << 8) + *p; + data = (data << 8) + EXTRACT_U_1(p); elem->data.uns = data; break; } @@ -591,7 +593,7 @@ asn1_parse(netdissect_options *ndo, elem->type = BE_UNS64; data64 = 0; for (i = elem->asnlen; i-- > 0; p++) - data64 = (data64 << 8) + *p; + data64 = (data64 << 8) + EXTRACT_U_1(p); elem->data.uns64 = data64; break; }