l2info.cookie is not inside the packet - it's a copy of data from the
packet, with the copy doing the necessary bounds checking - so we
shouldn't use NT_TCHECK or GET macros on it.
p+=l2info.header_len;
gh = (struct juniper_ggsn_header *)&l2info.cookie;
p+=l2info.header_len;
gh = (struct juniper_ggsn_header *)&l2info.cookie;
- ND_TCHECK_SIZE(gh);
- proto = GET_U_1(gh->proto);
+ /* use EXTRACT_, not GET_ (not packet buffer pointer) */
+ proto = EXTRACT_U_1(gh->proto);
if (ndo->ndo_eflag) {
ND_PRINT("proto %s (%u), vlan %u: ",
tok2str(juniper_protocol_values,"Unknown",proto),
proto,
if (ndo->ndo_eflag) {
ND_PRINT("proto %s (%u), vlan %u: ",
tok2str(juniper_protocol_values,"Unknown",proto),
proto,
- GET_BE_U_2(gh->vlan_id));
+ EXTRACT_BE_U_2(gh->vlan_id));