[dpdk-dev,1/1] ip_pipeline: fix null pointer dereference

Message ID 1465810549-19097-1-git-send-email-marcinx.kerlin@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers

Commit Message

Marcin Kerlin June 13, 2016, 9:35 a.m. UTC
  Return value of function app_pipeline_type_find is not checking before
dereference. Fix this problem by adding checking condition.

Coverity issue: 127196
Fixes: b4aee0fb9c6d ("examples/ip_pipeline: reconfigure thread binding dynamically")

Signed-off-by: Marcin Kerlin <marcinx.kerlin@intel.com>
---
 examples/ip_pipeline/thread_fe.c | 3 +++
 1 file changed, 3 insertions(+)
  

Comments

Cristian Dumitrescu June 13, 2016, 11:20 a.m. UTC | #1
> -----Original Message-----
> From: Kerlin, MarcinX
> Sent: Monday, June 13, 2016 10:36 AM
> To: dev@dpdk.org
> Cc: Azarewicz, PiotrX T <piotrx.t.azarewicz@intel.com>; Dumitrescu, Cristian
> <cristian.dumitrescu@intel.com>; Kerlin, MarcinX
> <marcinx.kerlin@intel.com>
> Subject: [PATCH 1/1] ip_pipeline: fix null pointer dereference
> 
> Return value of function app_pipeline_type_find is not checking before
> dereference. Fix this problem by adding checking condition.
> 
> Coverity issue: 127196
> Fixes: b4aee0fb9c6d ("examples/ip_pipeline: reconfigure thread binding
> dynamically")
> 
> Signed-off-by: Marcin Kerlin <marcinx.kerlin@intel.com>
> ---
>  examples/ip_pipeline/thread_fe.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/examples/ip_pipeline/thread_fe.c
> b/examples/ip_pipeline/thread_fe.c
> index d1b72b4..6c547ca 100644
> --- a/examples/ip_pipeline/thread_fe.c
> +++ b/examples/ip_pipeline/thread_fe.c
> @@ -81,6 +81,9 @@ app_pipeline_enable(struct app_params *app,
>  	p_params = &app->pipeline_params[pipeline_id];
>  	p_type = app_pipeline_type_find(app, p_params->type);
> 
> +	if (p_type == NULL)
> +		return -1;
> +
>  	if (p->enabled == 1)
>  		return -1;
> 
> --
> 1.9.1


Hi Marcin,

Checking p_type at this point is not required, as we already validated the pipeline settings (including the pipeline type) as part of the init code.

But since this code is harmless I am acking this patch just to avoid having the same discussion about this Coverity false positive issue again.

Regards,
Cristian

Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
  
Thomas Monjalon June 14, 2016, 7:10 p.m. UTC | #2
> > Return value of function app_pipeline_type_find is not checking before
> > dereference. Fix this problem by adding checking condition.
> > 
> > Coverity issue: 127196
> > Fixes: b4aee0fb9c6d ("examples/ip_pipeline: reconfigure thread binding
> > dynamically")
> > 
> > Signed-off-by: Marcin Kerlin <marcinx.kerlin@intel.com>

> Hi Marcin,
> 
> Checking p_type at this point is not required, as we already validated the pipeline settings (including the pipeline type) as part of the init code.
> 
> But since this code is harmless I am acking this patch just to avoid having the same discussion about this Coverity false positive issue again.
> 
> Regards,
> Cristian
> 
> Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>

Applied, thanks
  

Patch

diff --git a/examples/ip_pipeline/thread_fe.c b/examples/ip_pipeline/thread_fe.c
index d1b72b4..6c547ca 100644
--- a/examples/ip_pipeline/thread_fe.c
+++ b/examples/ip_pipeline/thread_fe.c
@@ -81,6 +81,9 @@  app_pipeline_enable(struct app_params *app,
 	p_params = &app->pipeline_params[pipeline_id];
 	p_type = app_pipeline_type_find(app, p_params->type);
 
+	if (p_type == NULL)
+		return -1;
+
 	if (p->enabled == 1)
 		return -1;