]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
optimize: do not merge raw payload expressions
authorPablo Neira Ayuso <pablo@netfilter.org>
Wed, 26 Jan 2022 22:03:45 +0000 (23:03 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Wed, 26 Jan 2022 22:31:12 +0000 (23:31 +0100)
Merging raw expressions results in a valid concatenation which throws:

 Error: can not use variable sized data types (integer) in concat expressions

Disable merging raw expressions until this is supported by skipping raw
expressions.

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

index 5882f3bd005d7a0147c30895f5fb6c14e61d1ffd..04523edb795b494739f9767ddb9a794c924c196c 100644 (file)
@@ -40,6 +40,9 @@ static bool __expr_cmp(const struct expr *expr_a, const struct expr *expr_b)
 
        switch (expr_a->etype) {
        case EXPR_PAYLOAD:
+               /* disable until concatenation with integer works. */
+               if (expr_a->payload.is_raw || expr_b->payload.is_raw)
+                       return false;
                if (expr_a->payload.base != expr_b->payload.base)
                        return false;
                if (expr_a->payload.offset != expr_b->payload.offset)