datapath: Remove unnecessary range check from put_actions().
authorBen Pfaff <blp@nicira.com>
Tue, 16 Jun 2009 21:16:14 +0000 (14:16 -0700)
committerBen Pfaff <blp@nicira.com>
Mon, 6 Jul 2009 16:07:24 +0000 (09:07 -0700)
This code checked that the number of actions in a flow query did not
exceed the maximum number of actions that are allowed on a given flow.
But this check is unnecessary, since the code will never copy out any
more actions than actually exist in a flow.  It would be a shame to refuse
a flow query simply on the basis that the caller allocated more memory
than necessary, so eliminate the check.

datapath/datapath.c

index 14d83cd9238b55e075e56e10308dfa7836adff7c..ceaed153706597767f26afc0c924264e6727e86c 100644 (file)
@@ -959,8 +959,6 @@ static int put_actions(const struct sw_flow *flow, struct odp_flow __user *ufp)
 
        if (!n_actions)
                return 0;
-       if (ufp->n_actions > INT_MAX / sizeof(union odp_action))
-               return -EINVAL;
 
        sf_acts = rcu_dereference(flow->sf_acts);
        if (__put_user(sf_acts->n_actions, &ufp->n_actions) ||