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 91320c458b714d4b93a31c15082dfff5e048d829..547e87ed90f93ec4ebdb0bf51999d3f6e06fa986 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;
     }