On Mon, Aug 08, 2016 at 01:17:56PM +0200, Carlos Falgueras García wrote:
> diff --git a/src/expr/dynset.c b/src/expr/dynset.c
> index 0eaa409..fa8b8d5 100644
> --- a/src/expr/dynset.c
> +++ b/src/expr/dynset.c
> @@ -370,6 +370,23 @@ static void nftnl_expr_dynset_free(const struct 
> nftnl_expr *e)
>       xfree(dynset->set_name);
>  }
>  
> +static bool nftnl_expr_dynset_cmp(const struct nftnl_expr *e1,
> +                               const struct nftnl_expr *e2)
> +{
> +     struct nftnl_expr_dynset *d1, *d2;
> +
> +     d1 = nftnl_expr_data(e1);
> +     d2 = nftnl_expr_data(e2);
> +
> +     return  d1->sreg_key  == d2->sreg_key       &&
> +             d1->sreg_data == d2->sreg_data      &&
> +             d1->op        == d2->op             &&
> +             d1->timeout   == d2->timeout        &&
> +             nftnl_expr_cmp(d1->expr, d2->expr)  &&
> +             !strcmp(d1->set_name, d2->set_name) &&
> +             d1->set_id    == d2->set_id;

Are we going to compare fields even if unset?

This is error prone, is we _set() an attribute, then _unset() it, we
just set off of the flag. So the value is still there and cmp will
return a bogus result.
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to