From: Pablo Neira Ayuso Date: Wed, 26 Jan 2022 22:03:45 +0000 (+0100) Subject: optimize: do not merge raw payload expressions X-Git-Tag: v1.0.2~15 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d0f14b5337e7480c03a31af483d4d94aa4291771;p=thirdparty%2Fnftables.git optimize: do not merge raw payload expressions 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 --- diff --git a/src/optimize.c b/src/optimize.c index 5882f3bd..04523edb 100644 --- a/src/optimize.c +++ b/src/optimize.c @@ -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)