diff options
-rw-r--r-- | src/evaluate.c | 1 | ||||
-rw-r--r-- | src/fib.c | 4 |
2 files changed, 4 insertions, 1 deletions
diff --git a/src/evaluate.c b/src/evaluate.c index 8cecbe09..6a1aa496 100644 --- a/src/evaluate.c +++ b/src/evaluate.c @@ -3002,6 +3002,7 @@ static int expr_evaluate_fib(struct eval_ctx *ctx, struct expr **exprp) if (expr->flags & EXPR_F_BOOLEAN) { expr->fib.flags |= NFTA_FIB_F_PRESENT; datatype_set(expr, &boolean_type); + expr->len = BITS_PER_BYTE; } return expr_evaluate_primary(ctx, exprp); } @@ -198,8 +198,10 @@ struct expr *fib_expr_alloc(const struct location *loc, BUG("Unknown result %d\n", result); } - if (flags & NFTA_FIB_F_PRESENT) + if (flags & NFTA_FIB_F_PRESENT) { type = &boolean_type; + len = BITS_PER_BYTE; + } expr = expr_alloc(loc, EXPR_FIB, type, BYTEORDER_HOST_ENDIAN, len); |