[dpdk-dev] [PATCH] lib/flow_classify: fix leaking rules on delete

David Marchand david.marchand at redhat.com
Tue Jun 22 09:24:14 CEST 2021


On Wed, Jun 16, 2021 at 9:57 PM <ohilyard at iol.unh.edu> wrote:
>
> From: Owen Hilyard <ohilyard at iol.unh.edu>
>
> Rules in a classify table were not freed if the table
> had a delete function.
>
> Fixes: be41ac2a3 ("flow_classify: introduce flow classify library")
Cc: stable at dpdk.org

>
> Signed-off-by: Owen Hilyard <ohilyard at iol.unh.edu>
> ---
>  lib/flow_classify/rte_flow_classify.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/lib/flow_classify/rte_flow_classify.c b/lib/flow_classify/rte_flow_classify.c
> index f125267e8..06aed3b70 100644
> --- a/lib/flow_classify/rte_flow_classify.c
> +++ b/lib/flow_classify/rte_flow_classify.c
> @@ -579,7 +579,7 @@ rte_flow_classify_table_entry_delete(struct rte_flow_classifier *cls,
>                                                 &rule->u.key.key_del,
>                                                 &rule->key_found,
>                                                 &rule->entry);
> -
> +                               free(rule);
>                                 return ret;
>                         }
>                 }

I find it strange to free the rule regardless of the result of the
f_delete() op.
The same is done out of the loop which means this function returns
-EINVAL and frees the rule in this case too.

Bernard, Ferruh, can you review please?

Thanks!


-- 
David Marchand



More information about the dev mailing list