event/dpaa2: fix dereference before null check

Message ID befbb8824171ccb7493fc968ee732263fbc32f52.1598423164.git.wangyunjian@huawei.com (mailing list archive)
State Accepted, archived
Delegated to: Jerin Jacob
Headers
Series event/dpaa2: fix dereference before null check |

Checks

Context Check Description
ci/Intel-compilation success Compilation OK
ci/travis-robot success Travis build: passed
ci/iol-testing success Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/checkpatch success coding style OK

Commit Message

Yunjian Wang Aug. 26, 2020, 1:07 p.m. UTC
  From: Yunjian Wang <wangyunjian@huawei.com>

Coverity flags that 'portal' variable is used before
it's checked for NULL. This patch fixes this issue.

Coverity issue: 323516
Fixes: 4ab57b042e7c ("event/dpaa2: affine portal at runtime during I/O")
Cc: stable@dpdk.org

Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
---
 drivers/event/dpaa2/dpaa2_eventdev.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
  

Comments

Jerin Jacob Oct. 4, 2020, 10:41 a.m. UTC | #1
On Wed, Aug 26, 2020 at 6:37 PM wangyunjian <wangyunjian@huawei.com> wrote:
>
> From: Yunjian Wang <wangyunjian@huawei.com>
>
> Coverity flags that 'portal' variable is used before
> it's checked for NULL. This patch fixes this issue.
>
> Coverity issue: 323516
> Fixes: 4ab57b042e7c ("event/dpaa2: affine portal at runtime during I/O")
> Cc: stable@dpdk.org


dpaa2 maintainers, Please review this.

>
> Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
> ---
>  drivers/event/dpaa2/dpaa2_eventdev.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/event/dpaa2/dpaa2_eventdev.c b/drivers/event/dpaa2/dpaa2_eventdev.c
> index 3ae4441ee..f7383ca73 100644
> --- a/drivers/event/dpaa2/dpaa2_eventdev.c
> +++ b/drivers/event/dpaa2/dpaa2_eventdev.c
> @@ -569,14 +569,14 @@ dpaa2_eventdev_port_release(void *port)
>
>         EVENTDEV_INIT_FUNC_TRACE();
>
> +       if (portal == NULL)
> +               return;
> +
>         /* TODO: Cleanup is required when ports are in linked state. */
>         if (portal->is_port_linked)
>                 DPAA2_EVENTDEV_WARN("Event port must be unlinked before release");
>
> -       if (portal)
> -               rte_free(portal);
> -
> -       portal = NULL;
> +       rte_free(portal);
>  }
>
>  static int
> --
> 2.23.0
>
>
  
Nipun Gupta Oct. 4, 2020, 10:53 a.m. UTC | #2
Acked-by: Nipun Gupta <nipun.gupta@nxp.com>

> -----Original Message-----
> From: wangyunjian <wangyunjian@huawei.com>
> Sent: Wednesday, August 26, 2020 6:38 PM
> To: dev@dpdk.org; Hemant Agrawal <hemant.agrawal@nxp.com>; Nipun Gupta
> <nipun.gupta@nxp.com>
> Cc: jerry.lilijun@huawei.com; xudingke@huawei.com; Yunjian Wang
> <wangyunjian@huawei.com>; stable@dpdk.org
> Subject: [dpdk-dev] [PATCH] event/dpaa2: fix dereference before null check
> 
> From: Yunjian Wang <wangyunjian@huawei.com>
> 
> Coverity flags that 'portal' variable is used before
> it's checked for NULL. This patch fixes this issue.
> 
> Coverity issue: 323516
> Fixes: 4ab57b042e7c ("event/dpaa2: affine portal at runtime during I/O")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
> ---
>  drivers/event/dpaa2/dpaa2_eventdev.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/event/dpaa2/dpaa2_eventdev.c
> b/drivers/event/dpaa2/dpaa2_eventdev.c
> index 3ae4441ee..f7383ca73 100644
> --- a/drivers/event/dpaa2/dpaa2_eventdev.c
> +++ b/drivers/event/dpaa2/dpaa2_eventdev.c
> @@ -569,14 +569,14 @@ dpaa2_eventdev_port_release(void *port)
> 
>  	EVENTDEV_INIT_FUNC_TRACE();
> 
> +	if (portal == NULL)
> +		return;
> +
>  	/* TODO: Cleanup is required when ports are in linked state. */
>  	if (portal->is_port_linked)
>  		DPAA2_EVENTDEV_WARN("Event port must be unlinked before
> release");
> 
> -	if (portal)
> -		rte_free(portal);
> -
> -	portal = NULL;
> +	rte_free(portal);
>  }
> 
>  static int
> --
> 2.23.0
>
  
Jerin Jacob Oct. 5, 2020, 9:40 a.m. UTC | #3
On Sun, Oct 4, 2020 at 4:23 PM Nipun Gupta <nipun.gupta@nxp.com> wrote:
>
> Acked-by: Nipun Gupta <nipun.gupta@nxp.com>


Applied to dpdk-next-eventdev/for-main. Thanks.


>
> > -----Original Message-----
> > From: wangyunjian <wangyunjian@huawei.com>
> > Sent: Wednesday, August 26, 2020 6:38 PM
> > To: dev@dpdk.org; Hemant Agrawal <hemant.agrawal@nxp.com>; Nipun Gupta
> > <nipun.gupta@nxp.com>
> > Cc: jerry.lilijun@huawei.com; xudingke@huawei.com; Yunjian Wang
> > <wangyunjian@huawei.com>; stable@dpdk.org
> > Subject: [dpdk-dev] [PATCH] event/dpaa2: fix dereference before null check
> >
> > From: Yunjian Wang <wangyunjian@huawei.com>
> >
> > Coverity flags that 'portal' variable is used before
> > it's checked for NULL. This patch fixes this issue.
> >
> > Coverity issue: 323516
> > Fixes: 4ab57b042e7c ("event/dpaa2: affine portal at runtime during I/O")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
> > ---
> >  drivers/event/dpaa2/dpaa2_eventdev.c | 8 ++++----
> >  1 file changed, 4 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/event/dpaa2/dpaa2_eventdev.c
> > b/drivers/event/dpaa2/dpaa2_eventdev.c
> > index 3ae4441ee..f7383ca73 100644
> > --- a/drivers/event/dpaa2/dpaa2_eventdev.c
> > +++ b/drivers/event/dpaa2/dpaa2_eventdev.c
> > @@ -569,14 +569,14 @@ dpaa2_eventdev_port_release(void *port)
> >
> >       EVENTDEV_INIT_FUNC_TRACE();
> >
> > +     if (portal == NULL)
> > +             return;
> > +
> >       /* TODO: Cleanup is required when ports are in linked state. */
> >       if (portal->is_port_linked)
> >               DPAA2_EVENTDEV_WARN("Event port must be unlinked before
> > release");
> >
> > -     if (portal)
> > -             rte_free(portal);
> > -
> > -     portal = NULL;
> > +     rte_free(portal);
> >  }
> >
> >  static int
> > --
> > 2.23.0
> >
>
  

Patch

diff --git a/drivers/event/dpaa2/dpaa2_eventdev.c b/drivers/event/dpaa2/dpaa2_eventdev.c
index 3ae4441ee..f7383ca73 100644
--- a/drivers/event/dpaa2/dpaa2_eventdev.c
+++ b/drivers/event/dpaa2/dpaa2_eventdev.c
@@ -569,14 +569,14 @@  dpaa2_eventdev_port_release(void *port)
 
 	EVENTDEV_INIT_FUNC_TRACE();
 
+	if (portal == NULL)
+		return;
+
 	/* TODO: Cleanup is required when ports are in linked state. */
 	if (portal->is_port_linked)
 		DPAA2_EVENTDEV_WARN("Event port must be unlinked before release");
 
-	if (portal)
-		rte_free(portal);
-
-	portal = NULL;
+	rte_free(portal);
 }
 
 static int