|
|
|
|
@ -1441,28 +1441,27 @@ static void PopulateMpmAddPatternToMpm(DetectEngineCtx *de_ctx,
|
|
|
|
|
{
|
|
|
|
|
MpmCtx *mpm_ctx_ts = NULL;
|
|
|
|
|
MpmCtx *mpm_ctx_tc = NULL;
|
|
|
|
|
uint32_t sgh_flags = 0;
|
|
|
|
|
|
|
|
|
|
cd = (DetectContentData *)mpm_sm->ctx;
|
|
|
|
|
|
|
|
|
|
if (sm_list == DETECT_SM_LIST_UMATCH) {
|
|
|
|
|
if (s->flags & SIG_FLAG_TOSERVER)
|
|
|
|
|
mpm_ctx_ts = sgh->mpm_uri_ctx_ts;
|
|
|
|
|
sgh->flags = SIG_GROUP_HEAD_MPM_URI;
|
|
|
|
|
sgh->flags |= SIG_GROUP_HEAD_MPM_URI;
|
|
|
|
|
s->flags |= SIG_FLAG_MPM_APPLAYER;
|
|
|
|
|
if (cd->flags & DETECT_CONTENT_NEGATED)
|
|
|
|
|
s->flags |= SIG_FLAG_MPM_APPLAYER_NEG;
|
|
|
|
|
} else if (sm_list == DETECT_SM_LIST_HCBDMATCH) {
|
|
|
|
|
if (s->flags & SIG_FLAG_TOSERVER)
|
|
|
|
|
mpm_ctx_ts = sgh->mpm_hcbd_ctx_ts;
|
|
|
|
|
sgh->flags = SIG_GROUP_HEAD_MPM_HCBD;
|
|
|
|
|
sgh->flags |= SIG_GROUP_HEAD_MPM_HCBD;
|
|
|
|
|
s->flags |= SIG_FLAG_MPM_APPLAYER;
|
|
|
|
|
if (cd->flags & DETECT_CONTENT_NEGATED)
|
|
|
|
|
s->flags |= SIG_FLAG_MPM_APPLAYER_NEG;
|
|
|
|
|
} else if (sm_list == DETECT_SM_LIST_HSBDMATCH) {
|
|
|
|
|
if (s->flags & SIG_FLAG_TOCLIENT)
|
|
|
|
|
mpm_ctx_tc = sgh->mpm_hsbd_ctx_tc;
|
|
|
|
|
sgh->flags = SIG_GROUP_HEAD_MPM_HSBD;
|
|
|
|
|
sgh->flags |= SIG_GROUP_HEAD_MPM_HSBD;
|
|
|
|
|
s->flags |= SIG_FLAG_MPM_APPLAYER;
|
|
|
|
|
if (cd->flags & DETECT_CONTENT_NEGATED)
|
|
|
|
|
s->flags |= SIG_FLAG_MPM_APPLAYER_NEG;
|
|
|
|
|
@ -1471,7 +1470,7 @@ static void PopulateMpmAddPatternToMpm(DetectEngineCtx *de_ctx,
|
|
|
|
|
mpm_ctx_ts = sgh->mpm_hhd_ctx_ts;
|
|
|
|
|
if (s->flags & SIG_FLAG_TOCLIENT)
|
|
|
|
|
mpm_ctx_tc = sgh->mpm_hhd_ctx_tc;
|
|
|
|
|
sgh->flags = SIG_GROUP_HEAD_MPM_HHD;
|
|
|
|
|
sgh->flags |= SIG_GROUP_HEAD_MPM_HHD;
|
|
|
|
|
s->flags |= SIG_FLAG_MPM_APPLAYER;
|
|
|
|
|
if (cd->flags & DETECT_CONTENT_NEGATED)
|
|
|
|
|
s->flags |= SIG_FLAG_MPM_APPLAYER_NEG;
|
|
|
|
|
@ -1480,14 +1479,14 @@ static void PopulateMpmAddPatternToMpm(DetectEngineCtx *de_ctx,
|
|
|
|
|
mpm_ctx_ts = sgh->mpm_hrhd_ctx_ts;
|
|
|
|
|
if (s->flags & SIG_FLAG_TOCLIENT)
|
|
|
|
|
mpm_ctx_tc = sgh->mpm_hrhd_ctx_tc;
|
|
|
|
|
sgh->flags = SIG_GROUP_HEAD_MPM_HRHD;
|
|
|
|
|
sgh->flags |= SIG_GROUP_HEAD_MPM_HRHD;
|
|
|
|
|
s->flags |= SIG_FLAG_MPM_APPLAYER;
|
|
|
|
|
if (cd->flags & DETECT_CONTENT_NEGATED)
|
|
|
|
|
s->flags |= SIG_FLAG_MPM_APPLAYER_NEG;
|
|
|
|
|
} else if (sm_list == DETECT_SM_LIST_HMDMATCH) {
|
|
|
|
|
if (s->flags & SIG_FLAG_TOSERVER)
|
|
|
|
|
mpm_ctx_ts = sgh->mpm_hmd_ctx_ts;
|
|
|
|
|
sgh->flags = SIG_GROUP_HEAD_MPM_HMD;
|
|
|
|
|
sgh->flags |= SIG_GROUP_HEAD_MPM_HMD;
|
|
|
|
|
s->flags |= SIG_FLAG_MPM_APPLAYER;
|
|
|
|
|
if (cd->flags & DETECT_CONTENT_NEGATED)
|
|
|
|
|
s->flags |= SIG_FLAG_MPM_APPLAYER_NEG;
|
|
|
|
|
@ -1496,49 +1495,49 @@ static void PopulateMpmAddPatternToMpm(DetectEngineCtx *de_ctx,
|
|
|
|
|
mpm_ctx_ts = sgh->mpm_hcd_ctx_ts;
|
|
|
|
|
if (s->flags & SIG_FLAG_TOCLIENT)
|
|
|
|
|
mpm_ctx_tc = sgh->mpm_hcd_ctx_tc;
|
|
|
|
|
sgh->flags = SIG_GROUP_HEAD_MPM_HCD;
|
|
|
|
|
sgh->flags |= SIG_GROUP_HEAD_MPM_HCD;
|
|
|
|
|
s->flags |= SIG_FLAG_MPM_APPLAYER;
|
|
|
|
|
if (cd->flags & DETECT_CONTENT_NEGATED)
|
|
|
|
|
s->flags |= SIG_FLAG_MPM_APPLAYER_NEG;
|
|
|
|
|
} else if (sm_list == DETECT_SM_LIST_HRUDMATCH) {
|
|
|
|
|
if (s->flags & SIG_FLAG_TOSERVER)
|
|
|
|
|
mpm_ctx_ts = sgh->mpm_hrud_ctx_ts;
|
|
|
|
|
sgh->flags = SIG_GROUP_HEAD_MPM_HRUD;
|
|
|
|
|
sgh->flags |= SIG_GROUP_HEAD_MPM_HRUD;
|
|
|
|
|
s->flags |= SIG_FLAG_MPM_APPLAYER;
|
|
|
|
|
if (cd->flags & DETECT_CONTENT_NEGATED)
|
|
|
|
|
s->flags |= SIG_FLAG_MPM_APPLAYER_NEG;
|
|
|
|
|
} else if (sm_list == DETECT_SM_LIST_HSMDMATCH) {
|
|
|
|
|
if (s->flags & SIG_FLAG_TOCLIENT)
|
|
|
|
|
mpm_ctx_tc = sgh->mpm_hsmd_ctx_tc;
|
|
|
|
|
sgh->flags = SIG_GROUP_HEAD_MPM_HSMD;
|
|
|
|
|
sgh->flags |= SIG_GROUP_HEAD_MPM_HSMD;
|
|
|
|
|
s->flags |= SIG_FLAG_MPM_APPLAYER;
|
|
|
|
|
if (cd->flags & DETECT_CONTENT_NEGATED)
|
|
|
|
|
s->flags |= SIG_FLAG_MPM_APPLAYER_NEG;
|
|
|
|
|
} else if (sm_list == DETECT_SM_LIST_HSCDMATCH) {
|
|
|
|
|
if (s->flags & SIG_FLAG_TOCLIENT)
|
|
|
|
|
mpm_ctx_tc = sgh->mpm_hscd_ctx_tc;
|
|
|
|
|
sgh->flags = SIG_GROUP_HEAD_MPM_HSCD;
|
|
|
|
|
sgh->flags |= SIG_GROUP_HEAD_MPM_HSCD;
|
|
|
|
|
s->flags |= SIG_FLAG_MPM_APPLAYER;
|
|
|
|
|
if (cd->flags & DETECT_CONTENT_NEGATED)
|
|
|
|
|
s->flags |= SIG_FLAG_MPM_APPLAYER_NEG;
|
|
|
|
|
} else if (sm_list == DETECT_SM_LIST_HUADMATCH) {
|
|
|
|
|
if (s->flags & SIG_FLAG_TOSERVER)
|
|
|
|
|
mpm_ctx_ts = sgh->mpm_huad_ctx_ts;
|
|
|
|
|
sgh->flags = SIG_GROUP_HEAD_MPM_HUAD;
|
|
|
|
|
sgh->flags |= SIG_GROUP_HEAD_MPM_HUAD;
|
|
|
|
|
s->flags |= SIG_FLAG_MPM_APPLAYER;
|
|
|
|
|
if (cd->flags & DETECT_CONTENT_NEGATED)
|
|
|
|
|
s->flags |= SIG_FLAG_MPM_APPLAYER_NEG;
|
|
|
|
|
} else if (sm_list == DETECT_SM_LIST_HHHDMATCH) {
|
|
|
|
|
if (s->flags & SIG_FLAG_TOSERVER)
|
|
|
|
|
mpm_ctx_ts = sgh->mpm_hhhd_ctx_ts;
|
|
|
|
|
sgh->flags = SIG_GROUP_HEAD_MPM_HHHD;
|
|
|
|
|
sgh->flags |= SIG_GROUP_HEAD_MPM_HHHD;
|
|
|
|
|
s->flags |= SIG_FLAG_MPM_APPLAYER;
|
|
|
|
|
if (cd->flags & DETECT_CONTENT_NEGATED)
|
|
|
|
|
s->flags |= SIG_FLAG_MPM_APPLAYER_NEG;
|
|
|
|
|
} else if (sm_list == DETECT_SM_LIST_HRHHDMATCH) {
|
|
|
|
|
if (s->flags & SIG_FLAG_TOSERVER)
|
|
|
|
|
mpm_ctx_ts = sgh->mpm_hrhhd_ctx_ts;
|
|
|
|
|
sgh->flags = SIG_GROUP_HEAD_MPM_HRHHD;
|
|
|
|
|
sgh->flags |= SIG_GROUP_HEAD_MPM_HRHHD;
|
|
|
|
|
s->flags |= SIG_FLAG_MPM_APPLAYER;
|
|
|
|
|
if (cd->flags & DETECT_CONTENT_NEGATED)
|
|
|
|
|
s->flags |= SIG_FLAG_MPM_APPLAYER_NEG;
|
|
|
|
|
@ -1547,7 +1546,7 @@ static void PopulateMpmAddPatternToMpm(DetectEngineCtx *de_ctx,
|
|
|
|
|
mpm_ctx_ts = sgh->mpm_dnsquery_ctx_ts;
|
|
|
|
|
if (s->flags & SIG_FLAG_TOCLIENT)
|
|
|
|
|
mpm_ctx_tc = NULL;
|
|
|
|
|
sgh->flags = SIG_GROUP_HEAD_MPM_DNSQUERY;
|
|
|
|
|
sgh->flags |= SIG_GROUP_HEAD_MPM_DNSQUERY;
|
|
|
|
|
s->flags |= SIG_FLAG_MPM_APPLAYER;
|
|
|
|
|
if (cd->flags & DETECT_CONTENT_NEGATED)
|
|
|
|
|
s->flags |= SIG_FLAG_MPM_APPLAYER_NEG;
|
|
|
|
|
|