On Wed, Oct 10, 2018 at 04:27:59PM +0000, Mordechay Haimovsky wrote:
> Hi Adrien,
>  You are correct, the bug is not where we thought it is, moreover the fix 
> breaks
> the CLI and should be rejected.
> We investigated more and found that the bug is in the port_flow_query routine
> Which passes an incorrect argument to rte_flow_conv as follows:
>            ret = rte_flow_conv(RTE_FLOW_CONV_OP_ACTION_NAME_PTR,
>                                                &name, sizeof(name), action, 
> &error);
> While it should pass onlt the action type as follows:
>       ret = rte_flow_conv(RTE_FLOW_CONV_OP_ACTION_NAME_PTR,
>                           &name, sizeof(name),
>                           (void *)(uintptr_t)action->type, &error);
> As done in port_flow_list routine (which works)
>       if (rte_flow_conv(RTE_FLOW_CONV_OP_ACTION_NAME_PTR,
>                                                 &name, sizeof(name),
>                                                 (void 
> *)(uintptr_t)action->type,
>                                                 NULL) <= 0)
> And according to the  parameters description of rte_flow_conv_name (called by 
>  rte_flow_conv):
>       * @param[in] src
>       *   Depending on @p is_action, source pattern item or action type cast 
> as a
>        *   pointer.
> 
> Modifying port_flow_query accordingly solves the issue.
> I will issue a new patch tonight.

Indeed, I confirm this is the right bug to address (and seems like I did not
validate rte_flow_query() properly.) Thanks for taking care of it! 

-- 
Adrien Mazarguil
6WIND

Reply via email to