summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/netlink_delinearize.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/netlink_delinearize.c b/src/netlink_delinearize.c
index 257473a4..ae872801 100644
--- a/src/netlink_delinearize.c
+++ b/src/netlink_delinearize.c
@@ -1265,10 +1265,10 @@ static void binop_adjust_one(const struct expr *binop, struct expr *value,
}
}
-static void binop_adjust(struct expr *expr, unsigned int shift)
+static void __binop_adjust(const struct expr *binop, struct expr *right,
+ unsigned int shift)
{
- const struct expr *binop = expr->left;
- struct expr *right = expr->right, *i;
+ struct expr *i;
switch (right->ops->type) {
case EXPR_VALUE:
@@ -1293,11 +1293,16 @@ static void binop_adjust(struct expr *expr, unsigned int shift)
}
break;
default:
- BUG("unknown expression type %s\n", expr->ops->name);
+ BUG("unknown expression type %s\n", right->ops->name);
break;
}
}
+static void binop_adjust(struct expr *expr, unsigned int shift)
+{
+ __binop_adjust(expr->left, expr->right, shift);
+}
+
static void binop_postprocess(struct rule_pp_ctx *ctx, struct expr *expr)
{
struct expr *binop = expr->left;