summaryrefslogtreecommitdiffstats
path: root/src/evaluate.c
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2022-03-28 17:36:40 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2022-03-29 11:01:45 +0200
commit82762ab6f261226030debd5ffe4e22d987ebdb7b (patch)
treeed0d594178a3ceb2fd83ba0dabd364e9e7c1eefe /src/evaluate.c
parent64bb3f43bb96bb43a478f695f5aea5f4ab50fd4b (diff)
src: allow to use integer type header fields via typeof set declaration
Header fields such as udp length cannot be used in concatenations because it is using the generic integer_type: test.nft:3:10-19: Error: can not use variable sized data types (integer) in concat expressions typeof udp length . @th,32,32 ^^^^^^^^^^~~~~~~~~~~~~ This patch slightly extends ("src: allow to use typeof of raw expressions in set declaration") to set on NFTNL_UDATA_SET_KEY_PAYLOAD_LEN in userdata if TYPE_INTEGER is used. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/evaluate.c')
-rw-r--r--src/evaluate.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/evaluate.c b/src/evaluate.c
index 61dd4fea..6b3b6366 100644
--- a/src/evaluate.c
+++ b/src/evaluate.c
@@ -3970,7 +3970,7 @@ static int set_expr_evaluate_concat(struct eval_ctx *ctx, struct expr **expr)
return expr_error(ctx->msgs, i,
"specify either ip or ip6 for address matching");
- if (i->etype == EXPR_PAYLOAD && i->payload.is_raw &&
+ if (i->etype == EXPR_PAYLOAD &&
i->dtype->type == TYPE_INTEGER) {
struct datatype *dtype;