[ovs-dev] [PATCH] ofproto: Fix potential leak during flow mods.

Jarno Rajahalme jrajahalme at nicira.com
Wed Apr 30 22:02:31 UTC 2014


Acked-by: Jarno Rajahalme <jrajahalme at nicira.com>

I would put the match and priority parameters on the same line, though.

  Jarno

On Apr 30, 2014, at 2:53 PM, Ethan Jackson <ethan at nicira.com> wrote:

> This code created a cls_rule without destroying it.  Found by
> inspection.
> 
> Signed-off-by: Ethan Jackson <ethan at nicira.com>
> ---
> ofproto/ofproto.c | 7 +++----
> 1 file changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c
> index 3d788a6..208efc1 100644
> --- a/ofproto/ofproto.c
> +++ b/ofproto/ofproto.c
> @@ -1975,14 +1975,13 @@ ofproto_flow_mod(struct ofproto *ofproto, struct ofputil_flow_mod *fm)
>     if (fm->command == OFPFC_MODIFY_STRICT && fm->table_id != OFPTT_ALL
>         && !(fm->flags & OFPUTIL_FF_RESET_COUNTS)) {
>         struct oftable *table = &ofproto->tables[fm->table_id];
> -        struct cls_rule match_rule;
>         struct rule *rule;
>         bool done = false;
> 
> -        cls_rule_init(&match_rule, &fm->match, fm->priority);
>         fat_rwlock_rdlock(&table->cls.rwlock);
> -        rule = rule_from_cls_rule(classifier_find_rule_exactly(&table->cls,
> -                                                               &match_rule));
> +        rule = rule_from_cls_rule(classifier_find_match_exactly(&table->cls,
> +                                                                &fm->match,
> +                                                                fm->priority));
>         if (rule) {
>             /* Reading many of the rule fields and writing on 'modified'
>              * requires the rule->mutex.  Also, rule->actions may change
> -- 
> 1.8.1.2
> 
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev





More information about the dev mailing list