When printing the action list we first check that the size of the
action matches the expected length for that type. However, when
doing the lookup we were passing in the length of the action, not
the type, leading to bogus values.
const uint8_t *eth;
ovs_be32 ip;
- if (nl_attr_get_size(a) != odp_action_len(a->nla_len)) {
+ if (nl_attr_get_size(a) != odp_action_len(nl_attr_type(a))) {
ds_put_format(ds, "***bad action: length is %zu, expected %d*** ",
- nl_attr_get_size(a), odp_action_len(a->nla_len));
+ nl_attr_get_size(a), odp_action_len(nl_attr_type(a)));
format_generic_odp_action(ds, a);
return;
}