examples/ip_pipeline: fix null pointer deref
Checks
Commit Message
Fixes null pointer dereference issue raised by coverity.
Coverity issue: 325728, 325729, 325731, 325738
Fixes: 27b333b23237 ("examples/ip_pipeline: track table rules on add bulk")
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
---
examples/ip_pipeline/cli.c | 28 +++++++++++++++++-----------
1 file changed, 17 insertions(+), 11 deletions(-)
Comments
> -----Original Message-----
> From: Singh, Jasvinder
> Sent: Friday, November 9, 2018 4:12 PM
> To: dev@dpdk.org
> Cc: Dumitrescu, Cristian <cristian.dumitrescu@intel.com>
> Subject: [PATCH] examples/ip_pipeline: fix null pointer deref
>
> Fixes null pointer dereference issue raised by coverity.
>
> Coverity issue: 325728, 325729, 325731, 325738
> Fixes: 27b333b23237 ("examples/ip_pipeline: track table rules on add bulk")
>
> Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
> ---
> examples/ip_pipeline/cli.c | 28 +++++++++++++++++-----------
> 1 file changed, 17 insertions(+), 11 deletions(-)
>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
> -----Original Message-----
> From: Singh, Jasvinder
> Sent: Friday, November 9, 2018 4:12 PM
> To: dev@dpdk.org
> Cc: Dumitrescu, Cristian <cristian.dumitrescu@intel.com>
> Subject: [PATCH] examples/ip_pipeline: fix null pointer deref
>
> Fixes null pointer dereference issue raised by coverity.
>
> Coverity issue: 325728, 325729, 325731, 325738
> Fixes: 27b333b23237 ("examples/ip_pipeline: track table rules on add bulk")
>
> Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
> ---
> examples/ip_pipeline/cli.c | 28 +++++++++++++++++-----------
> 1 file changed, 17 insertions(+), 11 deletions(-)
>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Applied to next-pipeline tree, thanks!
@@ -6841,20 +6841,26 @@ cli_rule_file_process(const char *file_name,
return 0;
cli_rule_file_process_free:
- *rule_list = NULL;
- *n_rules = rule_id;
- *line_number = line_id;
+ if (rule_list != NULL)
+ *rule_list = NULL;
- for ( ; ; ) {
- struct table_rule *rule;
+ if (n_rules != NULL)
+ *n_rules = rule_id;
- rule = TAILQ_FIRST(list);
- if (rule == NULL)
- break;
+ if (line_number != NULL)
+ *line_number = line_id;
- TAILQ_REMOVE(list, rule, node);
- free(rule);
- }
+ if (list != NULL)
+ for ( ; ; ) {
+ struct table_rule *rule;
+
+ rule = TAILQ_FIRST(list);
+ if (rule == NULL)
+ break;
+
+ TAILQ_REMOVE(list, rule, node);
+ free(rule);
+ }
if (f)
fclose(f);