diff --git a/src/detect-engine-dcepayload.c b/src/detect-engine-dcepayload.c index de39e9f525..3d076f4d1b 100644 --- a/src/detect-engine-dcepayload.c +++ b/src/detect-engine-dcepayload.c @@ -313,6 +313,9 @@ static int DoInspectDcePayload(DetectEngineCtx *de_ctx, SCReturnInt(1); } + if (det_ctx->discontinue_matching) + SCReturnInt(0); + det_ctx->payload_offset = prev_payload_offset; det_ctx->pcre_match_start_offset = prev_offset; } while (1); diff --git a/src/detect-engine-payload.c b/src/detect-engine-payload.c index e22164ca66..fade78a0cf 100644 --- a/src/detect-engine-payload.c +++ b/src/detect-engine-payload.c @@ -287,6 +287,9 @@ static int DoInspectPacketPayload(DetectEngineCtx *de_ctx, SCReturnInt(1); } + if (det_ctx->discontinue_matching) + SCReturnInt(0); + det_ctx->payload_offset = prev_payload_offset; det_ctx->pcre_match_start_offset = prev_offset; } while (1); diff --git a/src/detect-engine-uri.c b/src/detect-engine-uri.c index 8a01b088b3..4be6930878 100644 --- a/src/detect-engine-uri.c +++ b/src/detect-engine-uri.c @@ -270,6 +270,9 @@ static int DoInspectPacketUri(DetectEngineCtx *de_ctx, SCReturnInt(1); } + if (det_ctx->discontinue_matching) + SCReturnInt(0); + det_ctx->payload_offset = prev_payload_offset; det_ctx->pcre_match_start_offset = prev_offset; } while (1);