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;
ND_PRINT((ndo, "[Xtagfield?]"));
return -1;
}
- id = (id << 7) | (*p & ~ASN_BIT8);
+ id = (id << 7) | (EXTRACT_U_1(p) & ~ASN_BIT8);
len--;
hdr++;
p++;
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;
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);
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;
/*
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;
/*
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));