[dpdk-dev] net/i40e: fix dereferencing null pointer

Message ID 1501140502-155485-1-git-send-email-kubax.kozak@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Kuba Kozak July 27, 2017, 7:28 a.m. UTC
  Add check if o_vlan_mask and i_vlan_mask are
not a NULL pointer.

Coverity issue: 143448
Coverity issue: 143449
Fixes: d37705068ee8 ("net/i40e: parse QinQ pattern")
Cc: stable@dpdk.org

Signed-off-by: Kuba Kozak <kubax.kozak@intel.com>
---
 drivers/net/i40e/i40e_flow.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
  

Comments

Jingjing Wu July 28, 2017, 3:29 a.m. UTC | #1
> -----Original Message-----
> From: Kozak, KubaX
> Sent: Thursday, July 27, 2017 3:28 PM
> To: Wu, Jingjing <jingjing.wu@intel.com>
> Cc: dev@dpdk.org; Jain, Deepak K <deepak.k.jain@intel.com>; Jastrzebski, MichalX K
> <michalx.k.jastrzebski@intel.com>; Kozak, KubaX <kubax.kozak@intel.com>;
> stable@dpdk.org
> Subject: [PATCH] net/i40e: fix dereferencing null pointer
> 
> Add check if o_vlan_mask and i_vlan_mask are
> not a NULL pointer.
> 
> Coverity issue: 143448
> Coverity issue: 143449
> Fixes: d37705068ee8 ("net/i40e: parse QinQ pattern")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Kuba Kozak <kubax.kozak@intel.com>
> ---
>  drivers/net/i40e/i40e_flow.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/i40e/i40e_flow.c b/drivers/net/i40e/i40e_flow.c
> index 95af701..b92719a 100644
> --- a/drivers/net/i40e/i40e_flow.c
> +++ b/drivers/net/i40e/i40e_flow.c
> @@ -3719,8 +3719,10 @@ i40e_flow_parse_qinq_pattern(__rte_unused struct
> rte_eth_dev *dev,
>  	}
> 
>  	/* Get filter specification */
> -	if ((o_vlan_mask->tci == rte_cpu_to_be_16(I40E_TCI_MASK)) &&
> -	    (i_vlan_mask->tci == rte_cpu_to_be_16(I40E_TCI_MASK))) {
> +	if ((o_vlan_mask != NULL) && (o_vlan_mask->tci ==
> +			rte_cpu_to_be_16(I40E_TCI_MASK)) &&
> +			(i_vlan_mask != NULL) &&
> +			(i_vlan_mask->tci == rte_cpu_to_be_16(I40E_TCI_MASK))) {
>  		filter->outer_vlan = rte_be_to_cpu_16(o_vlan_spec->tci)
>  			& I40E_TCI_MASK;
>  		filter->inner_vlan = rte_be_to_cpu_16(i_vlan_spec->tci)
> --
Acked-by: Jingjing Wu <jingjing.wu@intel.com>

Thanks
  
Ferruh Yigit July 31, 2017, 1:23 p.m. UTC | #2
On 7/28/2017 4:29 AM, Wu, Jingjing wrote:
> 
> 
>> -----Original Message-----
>> From: Kozak, KubaX
>> Sent: Thursday, July 27, 2017 3:28 PM
>> To: Wu, Jingjing <jingjing.wu@intel.com>
>> Cc: dev@dpdk.org; Jain, Deepak K <deepak.k.jain@intel.com>; Jastrzebski, MichalX K
>> <michalx.k.jastrzebski@intel.com>; Kozak, KubaX <kubax.kozak@intel.com>;
>> stable@dpdk.org
>> Subject: [PATCH] net/i40e: fix dereferencing null pointer
>>
>> Add check if o_vlan_mask and i_vlan_mask are
>> not a NULL pointer.
>>
>> Coverity issue: 143448
>> Coverity issue: 143449
>> Fixes: d37705068ee8 ("net/i40e: parse QinQ pattern")
>> Cc: stable@dpdk.org
>>
>> Signed-off-by: Kuba Kozak <kubax.kozak@intel.com>

> Acked-by: Jingjing Wu <jingjing.wu@intel.com>

Applied to dpdk-next-net/master, thanks.
  

Patch

diff --git a/drivers/net/i40e/i40e_flow.c b/drivers/net/i40e/i40e_flow.c
index 95af701..b92719a 100644
--- a/drivers/net/i40e/i40e_flow.c
+++ b/drivers/net/i40e/i40e_flow.c
@@ -3719,8 +3719,10 @@  i40e_flow_parse_qinq_pattern(__rte_unused struct rte_eth_dev *dev,
 	}
 
 	/* Get filter specification */
-	if ((o_vlan_mask->tci == rte_cpu_to_be_16(I40E_TCI_MASK)) &&
-	    (i_vlan_mask->tci == rte_cpu_to_be_16(I40E_TCI_MASK))) {
+	if ((o_vlan_mask != NULL) && (o_vlan_mask->tci ==
+			rte_cpu_to_be_16(I40E_TCI_MASK)) &&
+			(i_vlan_mask != NULL) &&
+			(i_vlan_mask->tci == rte_cpu_to_be_16(I40E_TCI_MASK))) {
 		filter->outer_vlan = rte_be_to_cpu_16(o_vlan_spec->tci)
 			& I40E_TCI_MASK;
 		filter->inner_vlan = rte_be_to_cpu_16(i_vlan_spec->tci)