]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
optimize: payload expression requires inner_desc comparison
authorPablo Neira Ayuso <pablo@netfilter.org>
Wed, 4 Jan 2023 10:25:07 +0000 (11:25 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Wed, 4 Jan 2023 11:34:36 +0000 (12:34 +0100)
Since 772892a018b4 ("src: add vxlan matching support"), payload
expressions have an inner_desc field that provides the description for
the outer tunnel header.

When searching for common mergeable selectors, compare the inner
description too.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
src/optimize.c

index 09013efc548c86c420fec35f722c17515d82d40e..32aed866eb49f97e5027ddca753577dc307d42e2 100644 (file)
@@ -46,6 +46,8 @@ static bool __expr_cmp(const struct expr *expr_a, const struct expr *expr_b)
                        return false;
                if (expr_a->payload.desc != expr_b->payload.desc)
                        return false;
+               if (expr_a->payload.inner_desc != expr_b->payload.inner_desc)
+                       return false;
                if (expr_a->payload.tmpl != expr_b->payload.tmpl)
                        return false;
                break;