]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
evaluate: reject unsupported expressions in payload statement for bitfields
authorPablo Neira Ayuso <pablo@netfilter.org>
Fri, 28 Feb 2025 14:57:18 +0000 (15:57 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Fri, 7 Mar 2025 12:56:47 +0000 (13:56 +0100)
The payload statement evaluation pretends that it can handle any
expression for bitfields, but the existing evaluation code only knows
how to handle value expression.

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

index c090aebe2cca87d9a5da5ff8c7e394a7e73a60ca..d7915ed19d59bc60602b3acd71a155515385a3f5 100644 (file)
@@ -3351,7 +3351,8 @@ static int stmt_evaluate_payload(struct eval_ctx *ctx, struct stmt *stmt)
                        mpz_lshift_ui(stmt->payload.val->value, shift_imm);
                break;
        default:
-               break;
+               return expr_error(ctx->msgs, stmt->payload.val,
+                                 "payload statement for this expression is not supported");
        }
 
        masklen = payload_byte_size * BITS_PER_BYTE;