[PATCH nft 5/7] evaluate: clean up expr_evaluate_set()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Remove redundant check for elem->etype == EXPR_SET_ELEM, assert()
already validates this at the beginning of the loop.

Remove redundant pointer to set element, use iterator index instead.

Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
---
 src/evaluate.c | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

diff --git a/src/evaluate.c b/src/evaluate.c
index 85c446a124ee..82736bc5211c 100644
--- a/src/evaluate.c
+++ b/src/evaluate.c
@@ -2056,7 +2056,6 @@ static void expr_evaluate_set_ref(struct eval_ctx *ctx, struct expr *expr)
 static int expr_evaluate_set(struct eval_ctx *ctx, struct expr **expr)
 {
 	struct expr *set = *expr, *i, *next;
-	const struct expr *elem;
 
 	list_for_each_entry_safe(i, next, &expr_set(set)->expressions, list) {
 		assert(i->etype == EXPR_SET_ELEM);
@@ -2083,10 +2082,7 @@ static int expr_evaluate_set(struct eval_ctx *ctx, struct expr **expr)
 			continue;
 		}
 
-		elem = i;
-
-		if (elem->etype == EXPR_SET_ELEM &&
-		    elem->key->etype == EXPR_SET_REF)
+		if (i->key->etype == EXPR_SET_REF)
 			return expr_error(ctx->msgs, i,
 					  "Set reference cannot be part of another set");
 
@@ -2094,8 +2090,7 @@ static int expr_evaluate_set(struct eval_ctx *ctx, struct expr **expr)
 			return expr_error(ctx->msgs, i,
 					  "Set member is not constant");
 
-		if (i->etype == EXPR_SET_ELEM &&
-		    i->key->etype == EXPR_SET) {
+		if (i->key->etype == EXPR_SET) {
 			/* Merge recursive set definitions */
 			list_splice_tail_init(&expr_set(i->key)->expressions, &i->list);
 			list_del(&i->list);
@@ -2104,9 +2099,9 @@ static int expr_evaluate_set(struct eval_ctx *ctx, struct expr **expr)
 			expr_free(i);
 		} else if (!expr_is_singleton(i)) {
 			expr_set(set)->set_flags |= NFT_SET_INTERVAL;
-			if ((elem->key->etype == EXPR_MAPPING &&
-			     elem->key->left->etype == EXPR_CONCAT) ||
-			    elem->key->etype == EXPR_CONCAT)
+			if ((i->key->etype == EXPR_MAPPING &&
+			     i->key->left->etype == EXPR_CONCAT) ||
+			    i->key->etype == EXPR_CONCAT)
 				expr_set(set)->set_flags |= NFT_SET_CONCAT;
 		}
 	}
-- 
2.30.2





[Index of Archives]     [Netfitler Users]     [Berkeley Packet Filter]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux