net/ice: avoid out-of-bound access

Message ID 20220906022859.159925-1-zhichaox.zeng@intel.com (mailing list archive)
State Not Applicable, archived
Delegated to: Qi Zhang
Headers
Series net/ice: avoid out-of-bound access |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-testing warning apply patch failure
ci/Intel-compilation success Compilation OK
ci/intel-Testing fail Testing issues

Commit Message

Zhichao Zeng Sept. 6, 2022, 2:28 a.m. UTC
  Add judgment on 'ethdev_port_id' to avoid out-of-bound accessing
the 'rte_eth_devices'.

Fixes: 6f8fba7e437e ("net/ice: support represented port flow action")

Signed-off-by: Zhichao Zeng <zhichaox.zeng@intel.com>
---
 drivers/net/ice/ice_switch_filter.c | 4 ++++
 1 file changed, 4 insertions(+)
  

Comments

Qi Zhang Sept. 6, 2022, 4:47 a.m. UTC | #1
> -----Original Message-----
> From: Zeng, ZhichaoX <zhichaox.zeng@intel.com>
> Sent: Tuesday, September 6, 2022 10:29 AM
> To: dev@dpdk.org
> Cc: Yang, Qiming <qiming.yang@intel.com>; Zhou, YidingX
> <yidingx.zhou@intel.com>; Zeng, ZhichaoX <zhichaox.zeng@intel.com>;
> Zhang, Qi Z <qi.z.zhang@intel.com>
> Subject: [PATCH] net/ice: avoid out-of-bound access
> 
> Add judgment on 'ethdev_port_id' to avoid out-of-bound accessing the
> 'rte_eth_devices'.
> 
> Fixes: 6f8fba7e437e ("net/ice: support represented port flow action")
> 
> Signed-off-by: Zhichao Zeng <zhichaox.zeng@intel.com>

Acked-by: Qi Zhang <qi.z.zhang@intel.com>

Squashed to the fix target patch as it has not been merged.
https://patchwork.dpdk.org/project/dpdk/patch/20220725053549.4130777-1-zhichaox.zeng@intel.com/

Thanks
Qi
  
Ke Xu Sept. 14, 2022, 8:11 a.m. UTC | #2
> -----Original Message-----
> From: Zhichao Zeng <zhichaox.zeng@intel.com>
> Sent: Tuesday, September 6, 2022 10:29 AM
> To: dev@dpdk.org
> Cc: Yang, Qiming <qiming.yang@intel.com>; Zhou, YidingX
> <yidingx.zhou@intel.com>; Zeng, ZhichaoX <zhichaox.zeng@intel.com>;
> Zhang, Qi Z <qi.z.zhang@intel.com>
> Subject: [PATCH] net/ice: avoid out-of-bound access
> 
> Add judgment on 'ethdev_port_id' to avoid out-of-bound accessing the
> 'rte_eth_devices'.
> 
> Fixes: 6f8fba7e437e ("net/ice: support represented port flow action")
> 
> Signed-off-by: Zhichao Zeng <zhichaox.zeng@intel.com>
> ---
>  drivers/net/ice/ice_switch_filter.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/net/ice/ice_switch_filter.c
> b/drivers/net/ice/ice_switch_filter.c
> index 240fa10750..59fb31aa9d 100644
> --- a/drivers/net/ice/ice_switch_filter.c
> +++ b/drivers/net/ice/ice_switch_filter.c
> @@ -1631,6 +1631,10 @@ ice_switch_parse_dcf_action(struct
> ice_dcf_adapter *ad,
>  		case RTE_FLOW_ACTION_TYPE_REPRESENTED_PORT:
>  			rule_info->sw_act.fltr_act = ICE_FWD_TO_VSI;
>  			act_ethdev = action->conf;
> +
> +			if (!rte_eth_dev_is_valid_port(act_ethdev->port_id))
> +				goto invalid;
> +
>  			repr_dev = &rte_eth_devices[act_ethdev->port_id];
> 
>  			if (!repr_dev->data)
> --
> 2.25.1

Tested and passed.

Tested-by: Ke Xu <ke1.xu@intel.com>
  

Patch

diff --git a/drivers/net/ice/ice_switch_filter.c b/drivers/net/ice/ice_switch_filter.c
index 240fa10750..59fb31aa9d 100644
--- a/drivers/net/ice/ice_switch_filter.c
+++ b/drivers/net/ice/ice_switch_filter.c
@@ -1631,6 +1631,10 @@  ice_switch_parse_dcf_action(struct ice_dcf_adapter *ad,
 		case RTE_FLOW_ACTION_TYPE_REPRESENTED_PORT:
 			rule_info->sw_act.fltr_act = ICE_FWD_TO_VSI;
 			act_ethdev = action->conf;
+
+			if (!rte_eth_dev_is_valid_port(act_ethdev->port_id))
+				goto invalid;
+
 			repr_dev = &rte_eth_devices[act_ethdev->port_id];
 
 			if (!repr_dev->data)