From: Tonghao Zhang <xiangxia.m....@gmail.com>

When offloading the meter, should check the action
conf and make sure it is valid.

Fixes: f46bf7488705 ("net/mlx5: support meter flow action")
Cc: Suanming Mou <suanmi...@mellanox.com>

Signed-off-by: Tonghao Zhang <xiangxia.m....@gmail.com>
---
v2: coding style issues: http://patches.dpdk.org/patch/63849/
---
 drivers/net/mlx5/mlx5_flow_dv.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c
index 73aaea4..7528556 100644
--- a/drivers/net/mlx5/mlx5_flow_dv.c
+++ b/drivers/net/mlx5/mlx5_flow_dv.c
@@ -3402,7 +3402,12 @@ struct field_modify_info modify_tcp[] = {
 {
        struct mlx5_priv *priv = dev->data->dev_private;
        const struct rte_flow_action_meter *am = action->conf;
-       struct mlx5_flow_meter *fm = mlx5_flow_meter_find(priv, am->mtr_id);
+       struct mlx5_flow_meter *fm;
+
+       if (!am)
+               return rte_flow_error_set(error, EINVAL,
+                                         RTE_FLOW_ERROR_TYPE_ACTION, NULL,
+                                         "meter action conf is NULL");
 
        if (action_flags & MLX5_FLOW_ACTION_METER)
                return rte_flow_error_set(error, ENOTSUP,
@@ -3417,6 +3422,8 @@ struct field_modify_info modify_tcp[] = {
                                          RTE_FLOW_ERROR_TYPE_UNSPECIFIED,
                                          NULL,
                                          "meter action not supported");
+
+       fm = mlx5_flow_meter_find(priv, am->mtr_id);
        if (!fm)
                return rte_flow_error_set(error, EINVAL,
                                          RTE_FLOW_ERROR_TYPE_ACTION, NULL,
-- 
1.8.3.1

Reply via email to