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.
(cherry picked from commit
707241029c536f763449d6592f15417c1b245aeb)
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,
- GET_BE_U_2(gh->vlan_id));
+ EXTRACT_BE_U_2(gh->vlan_id));
}
switch (proto) {