From: Pablo Neira Ayuso Date: Wed, 12 Jun 2013 17:36:52 +0000 (+0200) Subject: evaluate: fix range and comparison evaluation X-Git-Tag: v0.099~102 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ad0b381c4bf80b330130de9c2a3c9fab110c63b6;p=thirdparty%2Fnftables.git 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 --- 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",