odp-util: Correct length check in format_odp_action().
authorJesse Gross <jesse@nicira.com>
Thu, 16 Dec 2010 22:27:47 +0000 (14:27 -0800)
committerJesse Gross <jesse@nicira.com>
Thu, 16 Dec 2010 22:33:04 +0000 (14:33 -0800)
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.

lib/odp-util.c

index 91320c4..547e87e 100644 (file)
@@ -103,9 +103,9 @@ format_odp_action(struct ds *ds, const struct nlattr *a)
     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;
     }