diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2022-03-28 17:36:40 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2022-03-29 11:01:45 +0200 |
commit | 82762ab6f261226030debd5ffe4e22d987ebdb7b (patch) | |
tree | ed0d594178a3ceb2fd83ba0dabd364e9e7c1eefe /src/evaluate.c | |
parent | 64bb3f43bb96bb43a478f695f5aea5f4ab50fd4b (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.c | 2 |
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; |