examples/pipeline: fix resource leak

Coverity issue: 363041
Fixes: 5074e1d551 ("examples/pipeline: add configuration commands")

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
This commit is contained in:
Cristian Dumitrescu 2020-10-26 21:23:55 +00:00 committed by David Marchand
parent 0dde44843b
commit 275ebefea7

View File

@ -779,6 +779,18 @@ cmd_pipeline_build(char **tokens,
}
}
static void
table_entry_free(struct rte_swx_table_entry *entry)
{
if (!entry)
return;
free(entry->key);
free(entry->key_mask);
free(entry->action_data);
free(entry);
}
static const char cmd_pipeline_table_update_help[] =
"pipeline <pipeline_name> table <table_name> update <file_name_add> "
"<file_name_delete> <file_name_default>";
@ -885,6 +897,7 @@ cmd_pipeline_table_update(char **tokens,
status = rte_swx_ctl_pipeline_table_entry_add(p->ctl,
table_name,
entry);
table_entry_free(entry);
if (status) {
snprintf(out, out_size,
"Invalid entry in file %s at line %u",
@ -914,6 +927,7 @@ cmd_pipeline_table_update(char **tokens,
status = rte_swx_ctl_pipeline_table_entry_delete(p->ctl,
table_name,
entry);
table_entry_free(entry);
if (status) {
snprintf(out, out_size,
"Invalid entry in file %s at line %u",
@ -942,6 +956,7 @@ cmd_pipeline_table_update(char **tokens,
status = rte_swx_ctl_pipeline_table_default_entry_add(p->ctl,
table_name,
entry);
table_entry_free(entry);
if (status) {
snprintf(out, out_size,
"Invalid entry in file %s at line %u",