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@xxxxxxxxxxxxx> --- src/evaluate.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/evaluate.c b/src/evaluate.c index c090aebe2cca..d7915ed19d59 100644 --- a/src/evaluate.c +++ b/src/evaluate.c @@ -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; -- 2.30.2