diff options
Diffstat (limited to 'src/payload.c')
-rw-r--r-- | src/payload.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/payload.c b/src/payload.c index 79008762..576eb149 100644 --- a/src/payload.c +++ b/src/payload.c @@ -733,13 +733,17 @@ static bool payload_may_dependency_kill(struct payload_dep_ctx *ctx, break; } - if (expr->payload.base == PROTO_BASE_TRANSPORT_HDR && - dep->left->payload.base == PROTO_BASE_TRANSPORT_HDR) { - if (dep->left->payload.desc == &proto_icmp) - return payload_may_dependency_kill_icmp(ctx, expr); - if (dep->left->payload.desc == &proto_icmp6) - return payload_may_dependency_kill_icmp(ctx, expr); - } + if (expr->payload.base != PROTO_BASE_TRANSPORT_HDR) + return true; + + if (dep->left->payload.base != PROTO_BASE_TRANSPORT_HDR) + return true; + + if (dep->left->payload.desc == &proto_icmp) + return payload_may_dependency_kill_icmp(ctx, expr); + + if (dep->left->payload.desc == &proto_icmp6) + return payload_may_dependency_kill_icmp(ctx, expr); return true; } |