Dependency statement go away after postprocess, so we should consider
them for possible range merges.
This problem was uncovered when adding support for sub-byte payload
ranges.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
{
enum ops op;
- if (prev && ctx->stmt->ops->type == prev->ops->type &&
+ expr_postprocess(ctx, &ctx->stmt->expr);
+
+ if (prev && ctx->stmt && ctx->stmt->ops->type == prev->ops->type &&
expr_may_merge_range(ctx->stmt->expr, prev->expr, &op))
expr_postprocess_range(ctx, prev, op);
-
- expr_postprocess(ctx, &ctx->stmt->expr);
}
static void rule_parse_postprocess(struct netlink_parse_ctx *ctx, struct rule *rule)