> -----Original Message----- > From: Xiaoyu Min <jack...@mellanox.com> > Sent: Tuesday, August 20, 2019 12:47 PM > To: Shahaf Shuler <shah...@mellanox.com>; Yongseok Koh > <ys...@mellanox.com>; Slava Ovsiienko <viachesl...@mellanox.com> > Cc: dev@dpdk.org; Dekel Peled <dek...@mellanox.com> > Subject: [PATCH] net/mlx5: raw encap data cannot be empty > > For the rte_flow_action_raw_encap, the header defination for > encapsulation must be available, otherwise it will lead to crash on some OFED > versions and logically it should be rejected. > > Fixes: 8ba9eee4ce32 ("net/mlx5: add raw data encap/decap to Direct Verbs") > Cc: dek...@mellanox.com > > Signed-off-by: Xiaoyu Min <jack...@mellanox.com> > --- > drivers/net/mlx5/mlx5_flow_dv.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/net/mlx5/mlx5_flow_dv.c > b/drivers/net/mlx5/mlx5_flow_dv.c index 21faa98ec3..41500bc109 100644 > --- a/drivers/net/mlx5/mlx5_flow_dv.c > +++ b/drivers/net/mlx5/mlx5_flow_dv.c > @@ -949,6 +949,8 @@ flow_dv_validate_action_raw_encap(uint64_t > action_flags, > const struct rte_flow_attr *attr, > struct rte_flow_error *error) > { > + const struct rte_flow_action_raw_encap *raw_encap = > + (const struct rte_flow_action_raw_encap *)action->conf; > if (!(action->conf)) > return rte_flow_error_set(error, EINVAL, > RTE_FLOW_ERROR_TYPE_ACTION, > action, @@ -970,6 +972,10 @@ > flow_dv_validate_action_raw_encap(uint64_t action_flags, > NULL, > "encap action not supported for " > "ingress"); > + if (!raw_encap->size || !raw_encap->data) > + return rte_flow_error_set(error, EINVAL, > + RTE_FLOW_ERROR_TYPE_ACTION, > action, > + "raw encap data cannot be empty"); > return 0; > } > > -- > 2.21.0
Acked-by: Dekel Peled <dek...@mellanox.com>