diff options
-rw-r--r-- | src/netlink.c | 13 | ||||
-rw-r--r-- | src/netlink_delinearize.c | 17 |
2 files changed, 8 insertions, 22 deletions
diff --git a/src/netlink.c b/src/netlink.c index 5aad8659..15b8878e 100644 --- a/src/netlink.c +++ b/src/netlink.c @@ -1939,16 +1939,11 @@ next: if (payload_is_stacked(desc, rel)) b--; - if (lhs->flags & EXPR_F_PROTOCOL && - pctx->pbase == PROTO_BASE_INVALID) { + /* Don't strip 'icmp type' from payload dump. */ + if (pctx->icmp_type == 0) + payload_dependency_kill(pctx, lhs, ctx->family); + if (lhs->flags & EXPR_F_PROTOCOL) payload_dependency_store(pctx, stmt, b); - } else { - /* Don't strip 'icmp type' from payload dump. */ - if (pctx->icmp_type == 0) - payload_dependency_kill(pctx, lhs, ctx->family); - if (lhs->flags & EXPR_F_PROTOCOL) - payload_dependency_store(pctx, stmt, b); - } goto next; } diff --git a/src/netlink_delinearize.c b/src/netlink_delinearize.c index 36ead802..fd81e071 100644 --- a/src/netlink_delinearize.c +++ b/src/netlink_delinearize.c @@ -1899,16 +1899,10 @@ static void payload_match_expand(struct rule_pp_ctx *ctx, * kill it later on if made redundant by a higher layer * payload expression. */ - if (ctx->pdctx.pbase == PROTO_BASE_INVALID && - expr->op == OP_EQ && - left->flags & EXPR_F_PROTOCOL) { + payload_dependency_kill(&ctx->pdctx, nexpr->left, + ctx->pctx.family); + if (expr->op == OP_EQ && left->flags & EXPR_F_PROTOCOL) payload_dependency_store(&ctx->pdctx, nstmt, base); - } else { - payload_dependency_kill(&ctx->pdctx, nexpr->left, - ctx->pctx.family); - if (expr->op == OP_EQ && left->flags & EXPR_F_PROTOCOL) - payload_dependency_store(&ctx->pdctx, nstmt, base); - } } list_del(&ctx->stmt->list); stmt_free(ctx->stmt); @@ -2125,10 +2119,7 @@ static void ct_meta_common_postprocess(struct rule_pp_ctx *ctx, relational_expr_pctx_update(&ctx->pctx, expr); - if (ctx->pdctx.pbase == PROTO_BASE_INVALID && - left->flags & EXPR_F_PROTOCOL) { - payload_dependency_store(&ctx->pdctx, ctx->stmt, base); - } else if (ctx->pdctx.pbase < PROTO_BASE_TRANSPORT_HDR) { + if (ctx->pdctx.pbase < PROTO_BASE_TRANSPORT_HDR) { if (payload_dependency_exists(&ctx->pdctx, base) && meta_may_dependency_kill(&ctx->pdctx, ctx->pctx.family, expr)) |