From: Victor Julien Date: Sat, 20 Feb 2021 14:53:51 +0000 (+0100) Subject: detect/prefilter: fix handling of prefilter as fast_pattern alias X-Git-Tag: suricata-5.0.6~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9f87caf756d09ba5bb0431b6dfe4b434d2f89a3d;p=thirdparty%2Fsuricata.git detect/prefilter: fix handling of prefilter as fast_pattern alias (cherry picked from commit 0dd5921bc9791ac733c8d264212d69e661309df1) --- diff --git a/src/detect-prefilter.c b/src/detect-prefilter.c index edc0da9728..533c79c48f 100644 --- a/src/detect-prefilter.c +++ b/src/detect-prefilter.c @@ -75,13 +75,6 @@ static int DetectPrefilterSetup (DetectEngineCtx *de_ctx, Signature *s, const ch SCLogError(SC_ERR_INVALID_SIGNATURE, "prefilter needs preceding match"); SCReturnInt(-1); } - if (sigmatch_table[sm->type].SupportsPrefilter == NULL) { - SCLogError(SC_ERR_INVALID_SIGNATURE, "prefilter is not supported for %s", - sigmatch_table[sm->type].name); - SCReturnInt(-1); - } - - s->init_data->prefilter_sm = sm; /* if the sig match is content, prefilter should act like * 'fast_pattern' w/o options. */ @@ -99,11 +92,18 @@ static int DetectPrefilterSetup (DetectEngineCtx *de_ctx, Signature *s, const ch } cd->flags |= DETECT_CONTENT_FAST_PATTERN; } else { + if (sigmatch_table[sm->type].SupportsPrefilter == NULL) { + SCLogError(SC_ERR_INVALID_SIGNATURE, "prefilter is not supported for %s", + sigmatch_table[sm->type].name); + SCReturnInt(-1); + } s->flags |= SIG_FLAG_PREFILTER; /* make sure setup function runs for this type. */ de_ctx->sm_types_prefilter[sm->type] = true; } + s->init_data->prefilter_sm = sm; + SCReturnInt(0); }