net/iavf: fix null pointer dereference

Message ID 20210114052324.393980-1-simei.su@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Qi Zhang
Headers
Series net/iavf: fix null pointer dereference |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/iol-broadcom-Functional success Functional Testing PASS
ci/Intel-compilation success Compilation OK
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/intel-Testing success Testing PASS
ci/iol-abi-testing success Testing PASS
ci/iol-testing success Testing PASS

Commit Message

Simei Su Jan. 14, 2021, 5:23 a.m. UTC
  A pointer has already been dereferenced before checking if it is NULL.
It doesn't make any sense, so correct to avoid it.

Fixes: 4f3cfcbc3df3 ("net/iavf: support eCPRI msg type 0 for RSS")
Coverity issue: 365290

Signed-off-by: Simei Su <simei.su@intel.com>
---
 drivers/net/iavf/iavf_hash.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)
  

Comments

Qi Zhang Jan. 14, 2021, 7:53 a.m. UTC | #1
> -----Original Message-----
> From: Su, Simei <simei.su@intel.com>
> Sent: Thursday, January 14, 2021 1:23 PM
> To: Zhang, Qi Z <qi.z.zhang@intel.com>
> Cc: dev@dpdk.org; Guo, Junfeng <junfeng.guo@intel.com>; Guo, Jia
> <jia.guo@intel.com>; Cao, Yahui <yahui.cao@intel.com>; Su, Simei
> <simei.su@intel.com>
> Subject: [PATCH] net/iavf: fix null pointer dereference
> 
> A pointer has already been dereferenced before checking if it is NULL.
> It doesn't make any sense, so correct to avoid it.
> 
> Fixes: 4f3cfcbc3df3 ("net/iavf: support eCPRI msg type 0 for RSS") Coverity issue:
> 365290
> 
> Signed-off-by: Simei Su <simei.su@intel.com>
> ---
>  drivers/net/iavf/iavf_hash.c | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/net/iavf/iavf_hash.c b/drivers/net/iavf/iavf_hash.c index
> ebaac58..9901f4b 100644
> --- a/drivers/net/iavf/iavf_hash.c
> +++ b/drivers/net/iavf/iavf_hash.c
> @@ -597,11 +597,13 @@ iavf_hash_parse_pattern(const struct rte_flow_item
> pattern[], uint64_t *phint,
>  			break;
>  		case RTE_FLOW_ITEM_TYPE_ECPRI:
>  			ecpri = item->spec;
> -			ecpri_common.u32 = rte_be_to_cpu_32(
> -						ecpri->hdr.common.u32);
>  			if (!ecpri)
>  				break;
> -			else if (ecpri_common.type !=
> +
> +			ecpri_common.u32 = rte_be_to_cpu_32(
> +						ecpri->hdr.common.u32);

patchwork warning CHECK:OPEN_ENDED_LINE for above code 
As we have 100 char line limit now, the wrap is not necessary.

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

Applied to dpdk-next-net-intel after capture above fix.

Thanks
Qi
  

Patch

diff --git a/drivers/net/iavf/iavf_hash.c b/drivers/net/iavf/iavf_hash.c
index ebaac58..9901f4b 100644
--- a/drivers/net/iavf/iavf_hash.c
+++ b/drivers/net/iavf/iavf_hash.c
@@ -597,11 +597,13 @@  iavf_hash_parse_pattern(const struct rte_flow_item pattern[], uint64_t *phint,
 			break;
 		case RTE_FLOW_ITEM_TYPE_ECPRI:
 			ecpri = item->spec;
-			ecpri_common.u32 = rte_be_to_cpu_32(
-						ecpri->hdr.common.u32);
 			if (!ecpri)
 				break;
-			else if (ecpri_common.type !=
+
+			ecpri_common.u32 = rte_be_to_cpu_32(
+						ecpri->hdr.common.u32);
+
+			if (ecpri_common.type !=
 				 RTE_ECPRI_MSG_TYPE_IQ_DATA) {
 				rte_flow_error_set(error, EINVAL,
 					RTE_FLOW_ERROR_TYPE_ITEM, item,