From ad0b381c4bf80b330130de9c2a3c9fab110c63b6 Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Wed, 12 Jun 2013 19:36:52 +0200 Subject: evaluate: fix range and comparison evaluation This patch fixes these two commands: nft add rule ip test test ip saddr 1.1.1.1-2.2.2.2 nft add rule ip test test ip saddr < 1.1.1.1 Signed-off-by: Pablo Neira Ayuso --- src/evaluate.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/evaluate.c b/src/evaluate.c index 6f90f54f..85c647e5 100644 --- a/src/evaluate.c +++ b/src/evaluate.c @@ -955,7 +955,7 @@ static int expr_evaluate_relational(struct eval_ctx *ctx, struct expr **expr) case OP_GT: case OP_LTE: case OP_GTE: - if (datatype_equal(left->dtype, right->dtype)) + if (!datatype_equal(left->dtype, right->dtype)) return expr_binary_error(ctx, right, left, "datatype mismatch, expected %s, " "expression has type %s", @@ -986,7 +986,7 @@ static int expr_evaluate_relational(struct eval_ctx *ctx, struct expr **expr) return -1; break; case OP_RANGE: - if (datatype_equal(left->dtype, right->dtype)) + if (!datatype_equal(left->dtype, right->dtype)) return expr_binary_error(ctx, right, left, "datatype mismatch, expected %s, " "expression has type %s", -- cgit v1.2.3