From: Xiaoyu Min Date: Tue, 20 Aug 2019 09:47:14 +0000 (+0800) Subject: net/mlx5: fix crash for empty raw encap data X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=c6cc228e9ddf3df925ac9482925059666bc9acb1;p=dpdk.git net/mlx5: fix crash for empty raw encap data For the rte_flow_action_raw_encap, the header definition 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: stable@dpdk.org Signed-off-by: Xiaoyu Min Acked-by: Dekel Peled --- 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; }