Fixes: b32c0a2c5e ("pipeline: add SWX table update high level API") Coverity issue: 362741 Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com> --- lib/librte_pipeline/rte_swx_ctl.c | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/librte_pipeline/rte_swx_ctl.c b/lib/librte_pipeline/rte_swx_ctl.c index 576fb2bf3..9d986a83e 100644 --- a/lib/librte_pipeline/rte_swx_ctl.c +++ b/lib/librte_pipeline/rte_swx_ctl.c @@ -1463,6 +1463,7 @@ rte_swx_ctl_pipeline_table_entry_read(struct rte_swx_ctl_pipeline *ctl, arg_offset += arg->n_bits / 8; } + free(s0); return entry; error: -- 2.17.1
Fixes: 5074e1d551 ("examples/pipeline: add configuration commands") Coverity issues: 362744, 362745, 362882 Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com> --- examples/pipeline/cli.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/pipeline/cli.c b/examples/pipeline/cli.c index 9f3d87a3c..76a58ee28 100644 --- a/examples/pipeline/cli.c +++ b/examples/pipeline/cli.c @@ -836,8 +836,8 @@ cmd_pipeline_table_update(char **tokens, } if (strcmp(file_name_delete, "none")) { - file_add = fopen(file_name_delete, "r"); - if (!file_add) { + file_delete = fopen(file_name_delete, "r"); + if (!file_delete) { snprintf(out, out_size, "Cannot open file %s", file_name_delete); goto error; @@ -845,8 +845,8 @@ cmd_pipeline_table_update(char **tokens, } if (strcmp(file_name_default, "none")) { - file_add = fopen(file_name_default, "r"); - if (!file_add) { + file_default = fopen(file_name_default, "r"); + if (!file_default) { snprintf(out, out_size, "Cannot open file %s", file_name_default); goto error; -- 2.17.1
Fixes: 3ca60ceed7 ("pipeline: add SWX pipeline specification file") Coverity issue: 362789 Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com> --- lib/librte_pipeline/rte_swx_pipeline_spec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/librte_pipeline/rte_swx_pipeline_spec.c b/lib/librte_pipeline/rte_swx_pipeline_spec.c index 95de8f983..06e1ab438 100644 --- a/lib/librte_pipeline/rte_swx_pipeline_spec.c +++ b/lib/librte_pipeline/rte_swx_pipeline_spec.c @@ -1064,7 +1064,7 @@ rte_swx_pipeline_build_from_spec(struct rte_swx_pipeline *p, goto error; } - if (!p) { + if (!spec) { if (err_line) *err_line = 0; if (err_msg) -- 2.17.1
Fixes: 3ca60ceed7 ("pipeline: add SWX pipeline specification file") Coverity issues: 362796, 362804, 362819, 362836, 362858, 362865, 362869 Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com> --- lib/librte_pipeline/rte_swx_pipeline_spec.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/lib/librte_pipeline/rte_swx_pipeline_spec.c b/lib/librte_pipeline/rte_swx_pipeline_spec.c index 06e1ab438..a4bc8226a 100644 --- a/lib/librte_pipeline/rte_swx_pipeline_spec.c +++ b/lib/librte_pipeline/rte_swx_pipeline_spec.c @@ -35,9 +35,17 @@ struct extobj_spec { static void extobj_spec_free(struct extobj_spec *s) { + if (!s) + return; + free(s->name); + s->name = NULL; + free(s->extern_type_name); + s->extern_type_name = NULL; + free(s->pragma); + s->pragma = NULL; } static int @@ -246,8 +254,14 @@ struct header_spec { static void header_spec_free(struct header_spec *s) { + if (!s) + return; + free(s->name); + s->name = NULL; + free(s->struct_type_name); + s->struct_type_name = NULL; } static int @@ -297,7 +311,11 @@ struct metadata_spec { static void metadata_spec_free(struct metadata_spec *s) { + if (!s) + return; + free(s->struct_type_name); + s->struct_type_name = NULL; } static int -- 2.17.1
Fixes: b32c0a2c5e ("pipeline: add SWX table update high level API") Coverity issue: 362812 Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com> --- lib/librte_pipeline/rte_swx_ctl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/librte_pipeline/rte_swx_ctl.c b/lib/librte_pipeline/rte_swx_ctl.c index 9d986a83e..ee6df4544 100644 --- a/lib/librte_pipeline/rte_swx_ctl.c +++ b/lib/librte_pipeline/rte_swx_ctl.c @@ -371,7 +371,7 @@ table_entry_duplicate(struct rte_swx_ctl_pipeline *ctl, } } - return entry; + return new_entry; error: table_entry_free(new_entry); -- 2.17.1
Fixes: 75634474ca ("pipeline: add SWX instruction verifier") Coverity issue: 362855 Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com> --- lib/librte_pipeline/rte_swx_pipeline.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/librte_pipeline/rte_swx_pipeline.c b/lib/librte_pipeline/rte_swx_pipeline.c index 8b7ff56f6..a4d072d6d 100644 --- a/lib/librte_pipeline/rte_swx_pipeline.c +++ b/lib/librte_pipeline/rte_swx_pipeline.c @@ -5671,7 +5671,7 @@ instr_verify(struct rte_swx_pipeline *p __rte_unused, for (i = 0; i < n_instructions; i++) { type = instr[i].type; - if (instr[i].type == INSTR_TX) + if (type == INSTR_TX) break; } CHECK(i < n_instructions, EINVAL); -- 2.17.1
Fixes: a1711f948d ("pipeline: add SWX Rx and extract instructions") Coverity issue: 362901 Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com> --- lib/librte_pipeline/rte_swx_pipeline.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/lib/librte_pipeline/rte_swx_pipeline.c b/lib/librte_pipeline/rte_swx_pipeline.c index a4d072d6d..d5b4a1cc6 100644 --- a/lib/librte_pipeline/rte_swx_pipeline.c +++ b/lib/librte_pipeline/rte_swx_pipeline.c @@ -5932,7 +5932,6 @@ instruction_config(struct rte_swx_pipeline *p, { struct instruction *instr = NULL; struct instruction_data *data = NULL; - char *string = NULL; int err = 0; uint32_t i; @@ -5955,15 +5954,17 @@ instruction_config(struct rte_swx_pipeline *p, } for (i = 0; i < n_instructions; i++) { - string = strdup(instructions[i]); + char *string = strdup(instructions[i]); if (!string) { err = ENOMEM; goto error; } err = instr_translate(p, a, string, &instr[i], &data[i]); - if (err) + if (err) { + free(string); goto error; + } free(string); } @@ -5982,8 +5983,6 @@ instruction_config(struct rte_swx_pipeline *p, if (err) goto error; - free(data); - if (a) { a->instructions = instr; a->n_instructions = n_instructions; @@ -5992,10 +5991,10 @@ instruction_config(struct rte_swx_pipeline *p, p->n_instructions = n_instructions; } + free(data); return 0; error: - free(string); free(data); free(instr); return err; -- 2.17.1
On Tue, Oct 6, 2020 at 10:38 PM Cristian Dumitrescu
<cristian.dumitrescu@intel.com> wrote:
>
> Fixes: b32c0a2c5e ("pipeline: add SWX table update high level API")
> Coverity issue: 362741
>
> Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Series applied.
--
David Marchand