]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
Remove mpm ctxs in the wrong direction. 412/head
authorAnoop Saldanha <anoopsaldanha@gmail.com>
Fri, 28 Jun 2013 06:14:33 +0000 (11:44 +0530)
committerAnoop Saldanha <anoopsaldanha@gmail.com>
Fri, 28 Jun 2013 06:14:35 +0000 (11:44 +0530)
A lot of http mpm ctxs have now been removed as a result of this.

src/detect-engine-mpm.c
src/detect.c
src/detect.h

index e1994c6a2796310b7b05c1278e2b61af73f62ee6..0f5959e3d2749ededef220e275995b146db5f9ff 100644 (file)
@@ -266,12 +266,7 @@ uint32_t UriPatternSearch(DetectEngineThreadCtx *det_ctx,
             Search(det_ctx->sgh->mpm_uri_ctx_ts,
                    &det_ctx->mtcu, &det_ctx->pmq, uri, uri_len);
     } else {
-        if (det_ctx->sgh->mpm_uri_ctx_tc == NULL)
-            SCReturnUInt(0U);
-
-        ret = mpm_table[det_ctx->sgh->mpm_uri_ctx_tc->mpm_type].
-            Search(det_ctx->sgh->mpm_uri_ctx_tc,
-                   &det_ctx->mtcu, &det_ctx->pmq, uri, uri_len);
+        BUG_ON(1);
     }
 
     //PrintRawDataFp(stdout, uri, uri_len);
@@ -302,12 +297,7 @@ uint32_t HttpClientBodyPatternSearch(DetectEngineThreadCtx *det_ctx,
             Search(det_ctx->sgh->mpm_hcbd_ctx_ts, &det_ctx->mtcu,
                    &det_ctx->pmq, body, body_len);
     } else {
-        if (det_ctx->sgh->mpm_hcbd_ctx_tc == NULL)
-            SCReturnUInt(0);
-
-        ret = mpm_table[det_ctx->sgh->mpm_hcbd_ctx_tc->mpm_type].
-            Search(det_ctx->sgh->mpm_hcbd_ctx_tc, &det_ctx->mtcu,
-                   &det_ctx->pmq, body, body_len);
+        BUG_ON(1);
     }
 
     SCReturnUInt(ret);
@@ -329,12 +319,7 @@ uint32_t HttpServerBodyPatternSearch(DetectEngineThreadCtx *det_ctx,
 
     uint32_t ret;
     if (flags & STREAM_TOSERVER) {
-        if (det_ctx->sgh->mpm_hsbd_ctx_ts == NULL)
-            SCReturnUInt(0);
-
-        ret = mpm_table[det_ctx->sgh->mpm_hsbd_ctx_ts->mpm_type].
-            Search(det_ctx->sgh->mpm_hsbd_ctx_ts, &det_ctx->mtcu,
-                   &det_ctx->pmq, body, body_len);
+        BUG_ON(1);
     } else {
         if (det_ctx->sgh->mpm_hsbd_ctx_tc == NULL)
             SCReturnUInt(0);
@@ -438,12 +423,7 @@ uint32_t HttpMethodPatternSearch(DetectEngineThreadCtx *det_ctx,
             Search(det_ctx->sgh->mpm_hmd_ctx_ts, &det_ctx->mtcu,
                    &det_ctx->pmq, raw_method, raw_method_len);
     } else {
-        if (det_ctx->sgh->mpm_hmd_ctx_tc == NULL)
-            SCReturnUInt(0);
-
-        ret = mpm_table[det_ctx->sgh->mpm_hmd_ctx_tc->mpm_type].
-            Search(det_ctx->sgh->mpm_hmd_ctx_tc, &det_ctx->mtcu,
-                   &det_ctx->pmq, raw_method, raw_method_len);
+        BUG_ON(1);
     }
 
     SCReturnUInt(ret);
@@ -506,12 +486,7 @@ uint32_t HttpRawUriPatternSearch(DetectEngineThreadCtx *det_ctx,
             Search(det_ctx->sgh->mpm_hrud_ctx_ts, &det_ctx->mtcu,
                    &det_ctx->pmq, uri, uri_len);
     } else {
-        if (det_ctx->sgh->mpm_hrud_ctx_tc == NULL)
-            SCReturnUInt(0);
-
-        ret = mpm_table[det_ctx->sgh->mpm_hrud_ctx_tc->mpm_type].
-            Search(det_ctx->sgh->mpm_hrud_ctx_tc, &det_ctx->mtcu,
-                   &det_ctx->pmq, uri, uri_len);
+        BUG_ON(1);
     }
 
     SCReturnUInt(ret);
@@ -533,12 +508,7 @@ uint32_t HttpStatMsgPatternSearch(DetectEngineThreadCtx *det_ctx,
 
     uint32_t ret;
     if (flags & STREAM_TOSERVER) {
-        if (det_ctx->sgh->mpm_hsmd_ctx_ts == NULL)
-            SCReturnUInt(0);
-
-        ret = mpm_table[det_ctx->sgh->mpm_hsmd_ctx_ts->mpm_type].
-            Search(det_ctx->sgh->mpm_hsmd_ctx_ts, &det_ctx->mtcu,
-                   &det_ctx->pmq, stat_msg, stat_msg_len);
+        BUG_ON(1);
     } else {
         if (det_ctx->sgh->mpm_hsmd_ctx_tc == NULL)
             SCReturnUInt(0);
@@ -567,12 +537,7 @@ uint32_t HttpStatCodePatternSearch(DetectEngineThreadCtx *det_ctx,
 
     uint32_t ret;
     if (flags & STREAM_TOSERVER) {
-        if (det_ctx->sgh->mpm_hscd_ctx_ts == NULL)
-            SCReturnUInt(0);
-
-        ret = mpm_table[det_ctx->sgh->mpm_hscd_ctx_ts->mpm_type].
-            Search(det_ctx->sgh->mpm_hscd_ctx_ts, &det_ctx->mtcu,
-                   &det_ctx->pmq, stat_code, stat_code_len);
+        BUG_ON(1);
     } else {
         if (det_ctx->sgh->mpm_hscd_ctx_tc == NULL)
             SCReturnUInt(0);
@@ -608,12 +573,7 @@ uint32_t HttpUAPatternSearch(DetectEngineThreadCtx *det_ctx,
             Search(det_ctx->sgh->mpm_huad_ctx_ts, &det_ctx->mtcu,
                    &det_ctx->pmq, ua, ua_len);
     } else {
-        if (det_ctx->sgh->mpm_huad_ctx_tc == NULL)
-            SCReturnUInt(0);
-
-        ret = mpm_table[det_ctx->sgh->mpm_huad_ctx_tc->mpm_type].
-            Search(det_ctx->sgh->mpm_huad_ctx_tc, &det_ctx->mtcu,
-                   &det_ctx->pmq, ua, ua_len);
+        BUG_ON(1);
     }
 
     SCReturnUInt(ret);
@@ -643,12 +603,7 @@ uint32_t HttpHHPatternSearch(DetectEngineThreadCtx *det_ctx,
             Search(det_ctx->sgh->mpm_hhhd_ctx_ts, &det_ctx->mtcu,
                    &det_ctx->pmq, hh, hh_len);
     } else {
-        if (det_ctx->sgh->mpm_hhhd_ctx_tc == NULL)
-            SCReturnUInt(0);
-
-        ret = mpm_table[det_ctx->sgh->mpm_hhhd_ctx_tc->mpm_type].
-            Search(det_ctx->sgh->mpm_hhhd_ctx_tc, &det_ctx->mtcu,
-                   &det_ctx->pmq, hh, hh_len);
+        BUG_ON(1);
     }
 
     SCReturnUInt(ret);
@@ -678,12 +633,7 @@ uint32_t HttpHRHPatternSearch(DetectEngineThreadCtx *det_ctx,
             Search(det_ctx->sgh->mpm_hrhhd_ctx_ts, &det_ctx->mtcu,
                    &det_ctx->pmq, hrh, hrh_len);
     } else {
-        if (det_ctx->sgh->mpm_hrhhd_ctx_tc == NULL)
-            SCReturnUInt(0);
-
-        ret = mpm_table[det_ctx->sgh->mpm_hrhhd_ctx_tc->mpm_type].
-            Search(det_ctx->sgh->mpm_hrhhd_ctx_tc, &det_ctx->mtcu,
-                   &det_ctx->pmq, hrh, hrh_len);
+        BUG_ON(1);
     }
 
     SCReturnUInt(ret);
@@ -813,9 +763,6 @@ void PacketPatternCleanup(ThreadVars *t, DetectEngineThreadCtx *det_ctx) {
     if (det_ctx->sgh->mpm_uri_ctx_ts != NULL && mpm_table[det_ctx->sgh->mpm_uri_ctx_ts->mpm_type].Cleanup != NULL) {
         mpm_table[det_ctx->sgh->mpm_uri_ctx_ts->mpm_type].Cleanup(&det_ctx->mtcu);
     }
-    if (det_ctx->sgh->mpm_uri_ctx_tc != NULL && mpm_table[det_ctx->sgh->mpm_uri_ctx_tc->mpm_type].Cleanup != NULL) {
-        mpm_table[det_ctx->sgh->mpm_uri_ctx_tc->mpm_type].Cleanup(&det_ctx->mtcu);
-    }
 
     /* stream content */
     if (det_ctx->sgh->mpm_stream_ctx_ts != NULL && mpm_table[det_ctx->sgh->mpm_stream_ctx_ts->mpm_type].Cleanup != NULL) {
@@ -924,8 +871,7 @@ void PatternMatchDestroyGroup(SigGroupHead *sh) {
     }
 
     /* uricontent */
-    if ((sh->mpm_uri_ctx_ts != NULL || sh->mpm_uri_ctx_tc != NULL) &&
-        !(sh->flags & SIG_GROUP_HEAD_MPM_URI_COPY)) {
+    if ((sh->mpm_uri_ctx_ts != NULL) && !(sh->flags & SIG_GROUP_HEAD_MPM_URI_COPY)) {
         if (sh->mpm_uri_ctx_ts != NULL) {
             SCLogDebug("destroying mpm_uri_ctx %p (sh %p)", sh->mpm_uri_ctx_ts, sh);
             if (!sh->mpm_uri_ctx_ts->global) {
@@ -935,15 +881,6 @@ void PatternMatchDestroyGroup(SigGroupHead *sh) {
             /* ready for reuse */
             sh->mpm_uri_ctx_ts = NULL;
         }
-        if (sh->mpm_uri_ctx_tc != NULL) {
-            SCLogDebug("destroying mpm_uri_ctx %p (sh %p)", sh->mpm_uri_ctx_tc, sh);
-            if (!sh->mpm_uri_ctx_tc->global) {
-                mpm_table[sh->mpm_uri_ctx_tc->mpm_type].DestroyCtx(sh->mpm_uri_ctx_tc);
-                SCFree(sh->mpm_uri_ctx_tc);
-            }
-            /* ready for reuse */
-            sh->mpm_uri_ctx_tc = NULL;
-        }
     }
 
     /* stream content */
@@ -969,7 +906,7 @@ void PatternMatchDestroyGroup(SigGroupHead *sh) {
         }
     }
 
-    if (sh->mpm_hcbd_ctx_ts != NULL || sh->mpm_hcbd_ctx_tc != NULL) {
+    if (sh->mpm_hcbd_ctx_ts != NULL) {
         if (sh->mpm_hcbd_ctx_ts != NULL) {
             if (!sh->mpm_hcbd_ctx_ts->global) {
                 mpm_table[sh->mpm_hcbd_ctx_ts->mpm_type].DestroyCtx(sh->mpm_hcbd_ctx_ts);
@@ -977,23 +914,9 @@ void PatternMatchDestroyGroup(SigGroupHead *sh) {
             }
             sh->mpm_hcbd_ctx_ts = NULL;
         }
-        if (sh->mpm_hcbd_ctx_tc != NULL) {
-            if (!sh->mpm_hcbd_ctx_tc->global) {
-                mpm_table[sh->mpm_hcbd_ctx_tc->mpm_type].DestroyCtx(sh->mpm_hcbd_ctx_tc);
-                SCFree(sh->mpm_hcbd_ctx_tc);
-            }
-            sh->mpm_hcbd_ctx_tc = NULL;
-        }
     }
 
-    if (sh->mpm_hsbd_ctx_ts != NULL || sh->mpm_hsbd_ctx_tc != NULL) {
-        if (sh->mpm_hsbd_ctx_ts != NULL) {
-            if (!sh->mpm_hsbd_ctx_ts->global) {
-                mpm_table[sh->mpm_hsbd_ctx_ts->mpm_type].DestroyCtx(sh->mpm_hsbd_ctx_ts);
-                SCFree(sh->mpm_hsbd_ctx_ts);
-            }
-            sh->mpm_hsbd_ctx_ts = NULL;
-        }
+    if (sh->mpm_hsbd_ctx_tc != NULL) {
         if (sh->mpm_hsbd_ctx_tc != NULL) {
             if (!sh->mpm_hsbd_ctx_tc->global) {
                 mpm_table[sh->mpm_hsbd_ctx_tc->mpm_type].DestroyCtx(sh->mpm_hsbd_ctx_tc);
@@ -1037,7 +960,7 @@ void PatternMatchDestroyGroup(SigGroupHead *sh) {
         }
     }
 
-    if (sh->mpm_hmd_ctx_ts != NULL || sh->mpm_hmd_ctx_tc != NULL) {
+    if (sh->mpm_hmd_ctx_ts != NULL) {
         if (sh->mpm_hmd_ctx_ts != NULL) {
             if (!sh->mpm_hmd_ctx_ts->global) {
                 mpm_table[sh->mpm_hmd_ctx_ts->mpm_type].DestroyCtx(sh->mpm_hmd_ctx_ts);
@@ -1045,13 +968,6 @@ void PatternMatchDestroyGroup(SigGroupHead *sh) {
             }
             sh->mpm_hmd_ctx_ts = NULL;
         }
-        if (sh->mpm_hmd_ctx_tc != NULL) {
-            if (!sh->mpm_hmd_ctx_tc->global) {
-                mpm_table[sh->mpm_hmd_ctx_tc->mpm_type].DestroyCtx(sh->mpm_hmd_ctx_tc);
-                SCFree(sh->mpm_hmd_ctx_tc);
-            }
-            sh->mpm_hmd_ctx_tc = NULL;
-        }
     }
 
     if (sh->mpm_hcd_ctx_ts != NULL || sh->mpm_hcd_ctx_tc != NULL) {
@@ -1071,7 +987,7 @@ void PatternMatchDestroyGroup(SigGroupHead *sh) {
         }
     }
 
-    if (sh->mpm_hrud_ctx_ts != NULL || sh->mpm_hrud_ctx_tc != NULL) {
+    if (sh->mpm_hrud_ctx_ts != NULL) {
         if (sh->mpm_hrud_ctx_ts != NULL) {
             if (!sh->mpm_hrud_ctx_ts->global) {
                 mpm_table[sh->mpm_hrud_ctx_ts->mpm_type].DestroyCtx(sh->mpm_hrud_ctx_ts);
@@ -1079,23 +995,9 @@ void PatternMatchDestroyGroup(SigGroupHead *sh) {
             }
             sh->mpm_hrud_ctx_ts = NULL;
         }
-        if (sh->mpm_hrud_ctx_tc != NULL) {
-            if (!sh->mpm_hrud_ctx_tc->global) {
-                mpm_table[sh->mpm_hrud_ctx_tc->mpm_type].DestroyCtx(sh->mpm_hrud_ctx_tc);
-                SCFree(sh->mpm_hrud_ctx_tc);
-            }
-            sh->mpm_hrud_ctx_tc = NULL;
-        }
     }
 
-    if (sh->mpm_hsmd_ctx_ts != NULL || sh->mpm_hsmd_ctx_tc != NULL) {
-        if (sh->mpm_hsmd_ctx_ts != NULL) {
-            if (!sh->mpm_hsmd_ctx_ts->global) {
-                mpm_table[sh->mpm_hsmd_ctx_ts->mpm_type].DestroyCtx(sh->mpm_hsmd_ctx_ts);
-                SCFree(sh->mpm_hsmd_ctx_ts);
-            }
-            sh->mpm_hsmd_ctx_ts = NULL;
-        }
+    if (sh->mpm_hsmd_ctx_tc != NULL) {
         if (sh->mpm_hsmd_ctx_tc != NULL) {
             if (!sh->mpm_hsmd_ctx_tc->global) {
                 mpm_table[sh->mpm_hsmd_ctx_tc->mpm_type].DestroyCtx(sh->mpm_hsmd_ctx_tc);
@@ -1105,14 +1007,7 @@ void PatternMatchDestroyGroup(SigGroupHead *sh) {
         }
     }
 
-    if (sh->mpm_hscd_ctx_ts != NULL || sh->mpm_hscd_ctx_tc != NULL) {
-        if (sh->mpm_hscd_ctx_ts != NULL) {
-            if (!sh->mpm_hscd_ctx_ts->global) {
-                mpm_table[sh->mpm_hscd_ctx_ts->mpm_type].DestroyCtx(sh->mpm_hscd_ctx_ts);
-                SCFree(sh->mpm_hscd_ctx_ts);
-            }
-            sh->mpm_hscd_ctx_ts = NULL;
-        }
+    if (sh->mpm_hscd_ctx_tc != NULL) {
         if (sh->mpm_hscd_ctx_tc != NULL) {
             if (!sh->mpm_hscd_ctx_tc->global) {
                 mpm_table[sh->mpm_hscd_ctx_tc->mpm_type].DestroyCtx(sh->mpm_hscd_ctx_tc);
@@ -1122,7 +1017,7 @@ void PatternMatchDestroyGroup(SigGroupHead *sh) {
         }
     }
 
-    if (sh->mpm_huad_ctx_ts != NULL || sh->mpm_huad_ctx_tc != NULL) {
+    if (sh->mpm_huad_ctx_ts != NULL) {
         if (sh->mpm_huad_ctx_ts != NULL) {
             if (!sh->mpm_huad_ctx_ts->global) {
                 mpm_table[sh->mpm_huad_ctx_ts->mpm_type].DestroyCtx(sh->mpm_huad_ctx_ts);
@@ -1130,13 +1025,6 @@ void PatternMatchDestroyGroup(SigGroupHead *sh) {
             }
             sh->mpm_huad_ctx_ts = NULL;
         }
-        if (sh->mpm_huad_ctx_tc != NULL) {
-            if (!sh->mpm_huad_ctx_tc->global) {
-                mpm_table[sh->mpm_huad_ctx_tc->mpm_type].DestroyCtx(sh->mpm_huad_ctx_tc);
-                SCFree(sh->mpm_huad_ctx_tc);
-            }
-            sh->mpm_huad_ctx_tc = NULL;
-        }
     }
 
     /* dns query */
@@ -1561,8 +1449,6 @@ static void PopulateMpmAddPatternToMpm(DetectEngineCtx *de_ctx,
             if (sm_list == DETECT_SM_LIST_UMATCH) {
                 if (s->flags & SIG_FLAG_TOSERVER)
                     mpm_ctx_ts = sgh->mpm_uri_ctx_ts;
-                if (s->flags & SIG_FLAG_TOCLIENT)
-                    mpm_ctx_tc = sgh->mpm_uri_ctx_tc;
                 sgh_flags = SIG_GROUP_HEAD_MPM_URI;
                 sig_flags |= SIG_FLAG_MPM_APPLAYER;
                 if (cd->flags & DETECT_CONTENT_NEGATED)
@@ -1570,15 +1456,11 @@ static void PopulateMpmAddPatternToMpm(DetectEngineCtx *de_ctx,
             } else if (sm_list == DETECT_SM_LIST_HCBDMATCH) {
                 if (s->flags & SIG_FLAG_TOSERVER)
                     mpm_ctx_ts = sgh->mpm_hcbd_ctx_ts;
-                if (s->flags & SIG_FLAG_TOCLIENT)
-                    mpm_ctx_tc = sgh->mpm_hcbd_ctx_tc;
                 sgh_flags = SIG_GROUP_HEAD_MPM_HCBD;
                 sig_flags |= SIG_FLAG_MPM_APPLAYER;
                 if (cd->flags & DETECT_CONTENT_NEGATED)
                     sig_flags |= SIG_FLAG_MPM_APPLAYER_NEG;
             } else if (sm_list == DETECT_SM_LIST_HSBDMATCH) {
-                if (s->flags & SIG_FLAG_TOSERVER)
-                    mpm_ctx_ts = sgh->mpm_hsbd_ctx_ts;
                 if (s->flags & SIG_FLAG_TOCLIENT)
                     mpm_ctx_tc = sgh->mpm_hsbd_ctx_tc;
                 sgh_flags = SIG_GROUP_HEAD_MPM_HSBD;
@@ -1606,8 +1488,6 @@ static void PopulateMpmAddPatternToMpm(DetectEngineCtx *de_ctx,
             } else if (sm_list == DETECT_SM_LIST_HMDMATCH) {
                 if (s->flags & SIG_FLAG_TOSERVER)
                     mpm_ctx_ts = sgh->mpm_hmd_ctx_ts;
-                if (s->flags & SIG_FLAG_TOCLIENT)
-                    mpm_ctx_tc = sgh->mpm_hmd_ctx_tc;
                 sgh_flags = SIG_GROUP_HEAD_MPM_HMD;
                 sig_flags |= SIG_FLAG_MPM_APPLAYER;
                 if (cd->flags & DETECT_CONTENT_NEGATED)
@@ -1624,15 +1504,11 @@ static void PopulateMpmAddPatternToMpm(DetectEngineCtx *de_ctx,
             } else if (sm_list == DETECT_SM_LIST_HRUDMATCH) {
                 if (s->flags & SIG_FLAG_TOSERVER)
                     mpm_ctx_ts = sgh->mpm_hrud_ctx_ts;
-                if (s->flags & SIG_FLAG_TOCLIENT)
-                    mpm_ctx_tc = sgh->mpm_hrud_ctx_tc;
                 sgh_flags = SIG_GROUP_HEAD_MPM_HRUD;
                 sig_flags |= SIG_FLAG_MPM_APPLAYER;
                 if (cd->flags & DETECT_CONTENT_NEGATED)
                     sig_flags |= SIG_FLAG_MPM_APPLAYER_NEG;
             } else if (sm_list == DETECT_SM_LIST_HSMDMATCH) {
-                if (s->flags & SIG_FLAG_TOSERVER)
-                    mpm_ctx_ts = sgh->mpm_hsmd_ctx_ts;
                 if (s->flags & SIG_FLAG_TOCLIENT)
                     mpm_ctx_tc = sgh->mpm_hsmd_ctx_tc;
                 sgh_flags = SIG_GROUP_HEAD_MPM_HSMD;
@@ -1640,8 +1516,6 @@ static void PopulateMpmAddPatternToMpm(DetectEngineCtx *de_ctx,
                 if (cd->flags & DETECT_CONTENT_NEGATED)
                     sig_flags |= SIG_FLAG_MPM_APPLAYER_NEG;
             } else if (sm_list == DETECT_SM_LIST_HSCDMATCH) {
-                if (s->flags & SIG_FLAG_TOSERVER)
-                    mpm_ctx_ts = sgh->mpm_hscd_ctx_ts;
                 if (s->flags & SIG_FLAG_TOCLIENT)
                     mpm_ctx_tc = sgh->mpm_hscd_ctx_tc;
                 sgh_flags = SIG_GROUP_HEAD_MPM_HSCD;
@@ -1651,8 +1525,6 @@ static void PopulateMpmAddPatternToMpm(DetectEngineCtx *de_ctx,
             } else if (sm_list == DETECT_SM_LIST_HUADMATCH) {
                 if (s->flags & SIG_FLAG_TOSERVER)
                     mpm_ctx_ts = sgh->mpm_huad_ctx_ts;
-                if (s->flags & SIG_FLAG_TOCLIENT)
-                    mpm_ctx_tc = sgh->mpm_huad_ctx_tc;
                 sgh_flags = SIG_GROUP_HEAD_MPM_HUAD;
                 sig_flags |= SIG_FLAG_MPM_APPLAYER;
                 if (cd->flags & DETECT_CONTENT_NEGATED)
@@ -1660,8 +1532,6 @@ static void PopulateMpmAddPatternToMpm(DetectEngineCtx *de_ctx,
             } else if (sm_list == DETECT_SM_LIST_HHHDMATCH) {
                 if (s->flags & SIG_FLAG_TOSERVER)
                     mpm_ctx_ts = sgh->mpm_hhhd_ctx_ts;
-                if (s->flags & SIG_FLAG_TOCLIENT)
-                    mpm_ctx_tc = sgh->mpm_hhhd_ctx_tc;
                 sgh_flags = SIG_GROUP_HEAD_MPM_HHHD;
                 sig_flags |= SIG_FLAG_MPM_APPLAYER;
                 if (cd->flags & DETECT_CONTENT_NEGATED)
@@ -1669,8 +1539,6 @@ static void PopulateMpmAddPatternToMpm(DetectEngineCtx *de_ctx,
             } else if (sm_list == DETECT_SM_LIST_HRHHDMATCH) {
                 if (s->flags & SIG_FLAG_TOSERVER)
                     mpm_ctx_ts = sgh->mpm_hrhhd_ctx_ts;
-                if (s->flags & SIG_FLAG_TOCLIENT)
-                    mpm_ctx_tc = sgh->mpm_hrhhd_ctx_tc;
                 sgh_flags = SIG_GROUP_HEAD_MPM_HRHHD;
                 sig_flags |= SIG_FLAG_MPM_APPLAYER;
                 if (cd->flags & DETECT_CONTENT_NEGATED)
@@ -2213,51 +2081,42 @@ int PatternMatchPrepareGroup(DetectEngineCtx *de_ctx, SigGroupHead *sh)
     if (has_co_uri) {
         if (de_ctx->sgh_mpm_context == ENGINE_SGH_MPM_FACTORY_CONTEXT_SINGLE) {
             sh->mpm_uri_ctx_ts = MpmFactoryGetMpmCtxForProfile(de_ctx, de_ctx->sgh_mpm_context_uri, 0);
-            sh->mpm_uri_ctx_tc = MpmFactoryGetMpmCtxForProfile(de_ctx, de_ctx->sgh_mpm_context_uri, 1);
         } else {
             sh->mpm_uri_ctx_ts = MpmFactoryGetMpmCtxForProfile(de_ctx, MPM_CTX_FACTORY_UNIQUE_CONTEXT, 0);
-            sh->mpm_uri_ctx_tc = MpmFactoryGetMpmCtxForProfile(de_ctx, MPM_CTX_FACTORY_UNIQUE_CONTEXT, 1);
         }
-        if (sh->mpm_uri_ctx_ts == NULL || sh->mpm_uri_ctx_tc == NULL) {
+        if (sh->mpm_uri_ctx_ts == NULL) {
             SCLogDebug("sh->mpm_uri_ctx == NULL. This should never happen");
             exit(EXIT_FAILURE);
         }
 
         MpmInitCtx(sh->mpm_uri_ctx_ts, de_ctx->mpm_matcher);
-        MpmInitCtx(sh->mpm_uri_ctx_tc, de_ctx->mpm_matcher);
     }
 
     if (has_co_hcbd) {
         if (de_ctx->sgh_mpm_context == ENGINE_SGH_MPM_FACTORY_CONTEXT_SINGLE) {
             sh->mpm_hcbd_ctx_ts = MpmFactoryGetMpmCtxForProfile(de_ctx, de_ctx->sgh_mpm_context_hcbd, 0);
-            sh->mpm_hcbd_ctx_tc = MpmFactoryGetMpmCtxForProfile(de_ctx, de_ctx->sgh_mpm_context_hcbd, 1);
         } else {
             sh->mpm_hcbd_ctx_ts = MpmFactoryGetMpmCtxForProfile(de_ctx, MPM_CTX_FACTORY_UNIQUE_CONTEXT, 0);
-            sh->mpm_hcbd_ctx_tc = MpmFactoryGetMpmCtxForProfile(de_ctx, MPM_CTX_FACTORY_UNIQUE_CONTEXT, 1);
         }
-        if (sh->mpm_hcbd_ctx_ts == NULL || sh->mpm_hcbd_ctx_tc == NULL) {
+        if (sh->mpm_hcbd_ctx_ts == NULL) {
             SCLogDebug("sh->mpm_hcbd_ctx == NULL. This should never happen");
             exit(EXIT_FAILURE);
         }
 
         MpmInitCtx(sh->mpm_hcbd_ctx_ts, de_ctx->mpm_matcher);
-        MpmInitCtx(sh->mpm_hcbd_ctx_tc, de_ctx->mpm_matcher);
     }
 
     if (has_co_hsbd) {
         if (de_ctx->sgh_mpm_context == ENGINE_SGH_MPM_FACTORY_CONTEXT_SINGLE) {
-            sh->mpm_hsbd_ctx_ts = MpmFactoryGetMpmCtxForProfile(de_ctx, de_ctx->sgh_mpm_context_hsbd, 0);
             sh->mpm_hsbd_ctx_tc = MpmFactoryGetMpmCtxForProfile(de_ctx, de_ctx->sgh_mpm_context_hsbd, 1);
         } else {
-            sh->mpm_hsbd_ctx_ts = MpmFactoryGetMpmCtxForProfile(de_ctx, MPM_CTX_FACTORY_UNIQUE_CONTEXT, 0);
             sh->mpm_hsbd_ctx_tc = MpmFactoryGetMpmCtxForProfile(de_ctx, MPM_CTX_FACTORY_UNIQUE_CONTEXT, 1);
         }
-        if (sh->mpm_hsbd_ctx_ts == NULL || sh->mpm_hsbd_ctx_tc == NULL) {
+        if (sh->mpm_hsbd_ctx_tc == NULL) {
             SCLogDebug("sh->mpm_hsbd_ctx == NULL. This should never happen");
             exit(EXIT_FAILURE);
         }
 
-        MpmInitCtx(sh->mpm_hsbd_ctx_ts, de_ctx->mpm_matcher);
         MpmInitCtx(sh->mpm_hsbd_ctx_tc, de_ctx->mpm_matcher);
     }
 
@@ -2298,18 +2157,15 @@ int PatternMatchPrepareGroup(DetectEngineCtx *de_ctx, SigGroupHead *sh)
     if (has_co_hmd) {
         if (de_ctx->sgh_mpm_context == ENGINE_SGH_MPM_FACTORY_CONTEXT_SINGLE) {
             sh->mpm_hmd_ctx_ts = MpmFactoryGetMpmCtxForProfile(de_ctx, de_ctx->sgh_mpm_context_hmd, 0);
-            sh->mpm_hmd_ctx_tc = MpmFactoryGetMpmCtxForProfile(de_ctx, de_ctx->sgh_mpm_context_hmd, 1);
         } else {
             sh->mpm_hmd_ctx_ts = MpmFactoryGetMpmCtxForProfile(de_ctx, MPM_CTX_FACTORY_UNIQUE_CONTEXT, 0);
-            sh->mpm_hmd_ctx_tc = MpmFactoryGetMpmCtxForProfile(de_ctx, MPM_CTX_FACTORY_UNIQUE_CONTEXT, 1);
         }
-        if (sh->mpm_hmd_ctx_ts == NULL || sh->mpm_hmd_ctx_tc == NULL) {
+        if (sh->mpm_hmd_ctx_ts == NULL) {
             SCLogDebug("sh->mpm_hmd_ctx == NULL. This should never happen");
             exit(EXIT_FAILURE);
         }
 
         MpmInitCtx(sh->mpm_hmd_ctx_ts, de_ctx->mpm_matcher);
-        MpmInitCtx(sh->mpm_hmd_ctx_tc, de_ctx->mpm_matcher);
     }
 
     if (has_co_hcd) {
@@ -2332,103 +2188,85 @@ int PatternMatchPrepareGroup(DetectEngineCtx *de_ctx, SigGroupHead *sh)
     if (has_co_hrud) {
         if (de_ctx->sgh_mpm_context == ENGINE_SGH_MPM_FACTORY_CONTEXT_SINGLE) {
             sh->mpm_hrud_ctx_ts = MpmFactoryGetMpmCtxForProfile(de_ctx, de_ctx->sgh_mpm_context_hrud, 0);
-            sh->mpm_hrud_ctx_tc = MpmFactoryGetMpmCtxForProfile(de_ctx, de_ctx->sgh_mpm_context_hrud, 1);
         } else {
             sh->mpm_hrud_ctx_ts = MpmFactoryGetMpmCtxForProfile(de_ctx, MPM_CTX_FACTORY_UNIQUE_CONTEXT, 0);
-            sh->mpm_hrud_ctx_tc = MpmFactoryGetMpmCtxForProfile(de_ctx, MPM_CTX_FACTORY_UNIQUE_CONTEXT, 1);
         }
-        if (sh->mpm_hrud_ctx_ts == NULL || sh->mpm_hrud_ctx_tc == NULL) {
+        if (sh->mpm_hrud_ctx_ts == NULL) {
             SCLogDebug("sh->mpm_hrud_ctx == NULL. This should never happen");
             exit(EXIT_FAILURE);
         }
 
         MpmInitCtx(sh->mpm_hrud_ctx_ts, de_ctx->mpm_matcher);
-        MpmInitCtx(sh->mpm_hrud_ctx_tc, de_ctx->mpm_matcher);
     }
 
     if (has_co_hsmd) {
         if (de_ctx->sgh_mpm_context == ENGINE_SGH_MPM_FACTORY_CONTEXT_SINGLE) {
-            sh->mpm_hsmd_ctx_ts = MpmFactoryGetMpmCtxForProfile(de_ctx, de_ctx->sgh_mpm_context_hsmd, 0);
             sh->mpm_hsmd_ctx_tc = MpmFactoryGetMpmCtxForProfile(de_ctx, de_ctx->sgh_mpm_context_hsmd, 1);
         } else {
-            sh->mpm_hsmd_ctx_ts = MpmFactoryGetMpmCtxForProfile(de_ctx, MPM_CTX_FACTORY_UNIQUE_CONTEXT, 0);
             sh->mpm_hsmd_ctx_tc = MpmFactoryGetMpmCtxForProfile(de_ctx, MPM_CTX_FACTORY_UNIQUE_CONTEXT, 1);
         }
-        if (sh->mpm_hsmd_ctx_ts == NULL || sh->mpm_hsmd_ctx_tc == NULL) {
+        if (sh->mpm_hsmd_ctx_tc == NULL) {
             SCLogDebug("sh->mpm_hsmd_ctx == NULL. This should never happen");
             exit(EXIT_FAILURE);
         }
 
-        MpmInitCtx(sh->mpm_hsmd_ctx_ts, de_ctx->mpm_matcher);
         MpmInitCtx(sh->mpm_hsmd_ctx_tc, de_ctx->mpm_matcher);
     }
 
     if (has_co_hscd) {
         if (de_ctx->sgh_mpm_context == ENGINE_SGH_MPM_FACTORY_CONTEXT_SINGLE) {
-            sh->mpm_hscd_ctx_ts = MpmFactoryGetMpmCtxForProfile(de_ctx, de_ctx->sgh_mpm_context_hscd, 0);
             sh->mpm_hscd_ctx_tc = MpmFactoryGetMpmCtxForProfile(de_ctx, de_ctx->sgh_mpm_context_hscd, 1);
         } else {
-            sh->mpm_hscd_ctx_ts = MpmFactoryGetMpmCtxForProfile(de_ctx, MPM_CTX_FACTORY_UNIQUE_CONTEXT, 0);
             sh->mpm_hscd_ctx_tc = MpmFactoryGetMpmCtxForProfile(de_ctx, MPM_CTX_FACTORY_UNIQUE_CONTEXT, 1);
         }
-        if (sh->mpm_hscd_ctx_ts == NULL || sh->mpm_hscd_ctx_tc == NULL) {
+        if (sh->mpm_hscd_ctx_tc == NULL) {
             SCLogDebug("sh->mpm_hscd_ctx == NULL. This should never happen");
             exit(EXIT_FAILURE);
         }
 
-        MpmInitCtx(sh->mpm_hscd_ctx_ts, de_ctx->mpm_matcher);
         MpmInitCtx(sh->mpm_hscd_ctx_tc, de_ctx->mpm_matcher);
     }
 
     if (has_co_huad) {
         if (de_ctx->sgh_mpm_context == ENGINE_SGH_MPM_FACTORY_CONTEXT_SINGLE) {
             sh->mpm_huad_ctx_ts = MpmFactoryGetMpmCtxForProfile(de_ctx, de_ctx->sgh_mpm_context_huad, 0);
-            sh->mpm_huad_ctx_tc = MpmFactoryGetMpmCtxForProfile(de_ctx, de_ctx->sgh_mpm_context_huad, 1);
         } else {
             sh->mpm_huad_ctx_ts = MpmFactoryGetMpmCtxForProfile(de_ctx, MPM_CTX_FACTORY_UNIQUE_CONTEXT, 0);
-            sh->mpm_huad_ctx_tc = MpmFactoryGetMpmCtxForProfile(de_ctx, MPM_CTX_FACTORY_UNIQUE_CONTEXT, 1);
         }
-        if (sh->mpm_huad_ctx_ts == NULL || sh->mpm_huad_ctx_tc == NULL) {
+        if (sh->mpm_huad_ctx_ts == NULL) {
             SCLogDebug("sh->mpm_huad_ctx == NULL. This should never happen");
             exit(EXIT_FAILURE);
         }
 
         MpmInitCtx(sh->mpm_huad_ctx_ts, de_ctx->mpm_matcher);
-        MpmInitCtx(sh->mpm_huad_ctx_tc, de_ctx->mpm_matcher);
     }
 
     if (has_co_hhhd) {
         if (de_ctx->sgh_mpm_context == ENGINE_SGH_MPM_FACTORY_CONTEXT_SINGLE) {
             sh->mpm_hhhd_ctx_ts = MpmFactoryGetMpmCtxForProfile(de_ctx, de_ctx->sgh_mpm_context_hhhd, 0);
-            sh->mpm_hhhd_ctx_tc = MpmFactoryGetMpmCtxForProfile(de_ctx, de_ctx->sgh_mpm_context_hhhd, 1);
         } else {
             sh->mpm_hhhd_ctx_ts = MpmFactoryGetMpmCtxForProfile(de_ctx, MPM_CTX_FACTORY_UNIQUE_CONTEXT, 0);
-            sh->mpm_hhhd_ctx_tc = MpmFactoryGetMpmCtxForProfile(de_ctx, MPM_CTX_FACTORY_UNIQUE_CONTEXT, 1);
         }
-        if (sh->mpm_hhhd_ctx_ts == NULL || sh->mpm_hhhd_ctx_tc == NULL) {
+        if (sh->mpm_hhhd_ctx_ts == NULL) {
             SCLogDebug("sh->mpm_hhhd_ctx == NULL. This should never happen");
             exit(EXIT_FAILURE);
         }
 
         MpmInitCtx(sh->mpm_hhhd_ctx_ts, de_ctx->mpm_matcher);
-        MpmInitCtx(sh->mpm_hhhd_ctx_tc, de_ctx->mpm_matcher);
     }
 
     if (has_co_hrhhd) {
         if (de_ctx->sgh_mpm_context == ENGINE_SGH_MPM_FACTORY_CONTEXT_SINGLE) {
             sh->mpm_hrhhd_ctx_ts = MpmFactoryGetMpmCtxForProfile(de_ctx, de_ctx->sgh_mpm_context_hrhhd, 0);
-            sh->mpm_hrhhd_ctx_tc = MpmFactoryGetMpmCtxForProfile(de_ctx, de_ctx->sgh_mpm_context_hrhhd, 1);
         } else {
             sh->mpm_hrhhd_ctx_ts = MpmFactoryGetMpmCtxForProfile(de_ctx, MPM_CTX_FACTORY_UNIQUE_CONTEXT, 0);
-            sh->mpm_hrhhd_ctx_tc = MpmFactoryGetMpmCtxForProfile(de_ctx, MPM_CTX_FACTORY_UNIQUE_CONTEXT, 1);
         }
-        if (sh->mpm_hrhhd_ctx_ts == NULL || sh->mpm_hrhhd_ctx_tc == NULL) {
+        if (sh->mpm_hrhhd_ctx_ts == NULL) {
             SCLogDebug("sh->mpm_hrhhd_ctx == NULL. This should never happen");
             exit(EXIT_FAILURE);
         }
 
         MpmInitCtx(sh->mpm_hrhhd_ctx_ts, de_ctx->mpm_matcher);
-        MpmInitCtx(sh->mpm_hrhhd_ctx_tc, de_ctx->mpm_matcher);
     }
 
     if (has_co_dnsquery) {
@@ -2567,17 +2405,6 @@ int PatternMatchPrepareGroup(DetectEngineCtx *de_ctx, SigGroupHead *sh)
                  }
              }
          }
-         if (sh->mpm_uri_ctx_tc != NULL) {
-             if (sh->mpm_uri_ctx_tc->pattern_cnt == 0) {
-                 MpmFactoryReClaimMpmCtx(de_ctx, sh->mpm_uri_ctx_tc);
-                 sh->mpm_uri_ctx_tc = NULL;
-             } else {
-                 if (de_ctx->sgh_mpm_context == ENGINE_SGH_MPM_FACTORY_CONTEXT_FULL) {
-                     if (mpm_table[sh->mpm_uri_ctx_tc->mpm_type].Prepare != NULL)
-                         mpm_table[sh->mpm_uri_ctx_tc->mpm_type].Prepare(sh->mpm_uri_ctx_tc);
-                 }
-             }
-         }
 
          if (sh->mpm_hcbd_ctx_ts != NULL) {
              if (sh->mpm_hcbd_ctx_ts->pattern_cnt == 0) {
@@ -2590,29 +2417,7 @@ int PatternMatchPrepareGroup(DetectEngineCtx *de_ctx, SigGroupHead *sh)
                  }
              }
          }
-         if (sh->mpm_hcbd_ctx_tc != NULL) {
-             if (sh->mpm_hcbd_ctx_tc->pattern_cnt == 0) {
-                 MpmFactoryReClaimMpmCtx(de_ctx, sh->mpm_hcbd_ctx_tc);
-                 sh->mpm_hcbd_ctx_tc = NULL;
-             } else {
-                 if (de_ctx->sgh_mpm_context == ENGINE_SGH_MPM_FACTORY_CONTEXT_FULL) {
-                     if (mpm_table[sh->mpm_hcbd_ctx_tc->mpm_type].Prepare != NULL)
-                         mpm_table[sh->mpm_hcbd_ctx_tc->mpm_type].Prepare(sh->mpm_hcbd_ctx_tc);
-                 }
-             }
-         }
 
-         if (sh->mpm_hsbd_ctx_ts != NULL) {
-             if (sh->mpm_hsbd_ctx_ts->pattern_cnt == 0) {
-                 MpmFactoryReClaimMpmCtx(de_ctx, sh->mpm_hsbd_ctx_ts);
-                 sh->mpm_hsbd_ctx_ts = NULL;
-             } else {
-                 if (de_ctx->sgh_mpm_context == ENGINE_SGH_MPM_FACTORY_CONTEXT_FULL) {
-                     if (mpm_table[sh->mpm_hsbd_ctx_ts->mpm_type].Prepare != NULL)
-                         mpm_table[sh->mpm_hsbd_ctx_ts->mpm_type].Prepare(sh->mpm_hsbd_ctx_ts);
-                 }
-             }
-         }
          if (sh->mpm_hsbd_ctx_tc != NULL) {
              if (sh->mpm_hsbd_ctx_tc->pattern_cnt == 0) {
                  MpmFactoryReClaimMpmCtx(de_ctx, sh->mpm_hsbd_ctx_tc);
@@ -2682,17 +2487,6 @@ int PatternMatchPrepareGroup(DetectEngineCtx *de_ctx, SigGroupHead *sh)
                  }
              }
          }
-         if (sh->mpm_hmd_ctx_tc != NULL) {
-             if (sh->mpm_hmd_ctx_tc->pattern_cnt == 0) {
-                 MpmFactoryReClaimMpmCtx(de_ctx, sh->mpm_hmd_ctx_tc);
-                 sh->mpm_hmd_ctx_tc = NULL;
-             } else {
-                 if (de_ctx->sgh_mpm_context == ENGINE_SGH_MPM_FACTORY_CONTEXT_FULL) {
-                     if (mpm_table[sh->mpm_hmd_ctx_tc->mpm_type].Prepare != NULL)
-                         mpm_table[sh->mpm_hmd_ctx_tc->mpm_type].Prepare(sh->mpm_hmd_ctx_tc);
-                 }
-             }
-         }
 
          if (sh->mpm_hcd_ctx_ts != NULL) {
              if (sh->mpm_hcd_ctx_ts->pattern_cnt == 0) {
@@ -2728,28 +2522,7 @@ int PatternMatchPrepareGroup(DetectEngineCtx *de_ctx, SigGroupHead *sh)
                  }
              }
          }
-         if (sh->mpm_hrud_ctx_tc != NULL) {
-             if (sh->mpm_hrud_ctx_tc->pattern_cnt == 0) {
-                 MpmFactoryReClaimMpmCtx(de_ctx, sh->mpm_hrud_ctx_tc);
-                 sh->mpm_hrud_ctx_tc = NULL;
-             } else {
-                 if (de_ctx->sgh_mpm_context == ENGINE_SGH_MPM_FACTORY_CONTEXT_FULL) {
-                     if (mpm_table[sh->mpm_hrud_ctx_tc->mpm_type].Prepare != NULL)
-                         mpm_table[sh->mpm_hrud_ctx_tc->mpm_type].Prepare(sh->mpm_hrud_ctx_tc);
-                 }
-             }
-         }
-         if (sh->mpm_hsmd_ctx_ts != NULL) {
-             if (sh->mpm_hsmd_ctx_ts->pattern_cnt == 0) {
-                 MpmFactoryReClaimMpmCtx(de_ctx, sh->mpm_hsmd_ctx_ts);
-                 sh->mpm_hsmd_ctx_ts = NULL;
-             } else {
-                 if (de_ctx->sgh_mpm_context == ENGINE_SGH_MPM_FACTORY_CONTEXT_FULL) {
-                     if (mpm_table[sh->mpm_hsmd_ctx_ts->mpm_type].Prepare != NULL)
-                         mpm_table[sh->mpm_hsmd_ctx_ts->mpm_type].Prepare(sh->mpm_hsmd_ctx_ts);
-                 }
-             }
-         }
+
          if (sh->mpm_hsmd_ctx_tc != NULL) {
              if (sh->mpm_hsmd_ctx_tc->pattern_cnt == 0) {
                  MpmFactoryReClaimMpmCtx(de_ctx, sh->mpm_hsmd_ctx_tc);
@@ -2761,17 +2534,7 @@ int PatternMatchPrepareGroup(DetectEngineCtx *de_ctx, SigGroupHead *sh)
                  }
              }
          }
-         if (sh->mpm_hscd_ctx_ts != NULL) {
-             if (sh->mpm_hscd_ctx_ts->pattern_cnt == 0) {
-                 MpmFactoryReClaimMpmCtx(de_ctx, sh->mpm_hscd_ctx_ts);
-                 sh->mpm_hscd_ctx_ts = NULL;
-             } else {
-                 if (de_ctx->sgh_mpm_context == ENGINE_SGH_MPM_FACTORY_CONTEXT_FULL) {
-                     if (mpm_table[sh->mpm_hscd_ctx_ts->mpm_type].Prepare != NULL)
-                         mpm_table[sh->mpm_hscd_ctx_ts->mpm_type].Prepare(sh->mpm_hscd_ctx_ts);
-                 }
-             }
-         }
+
          if (sh->mpm_hscd_ctx_tc != NULL) {
              if (sh->mpm_hscd_ctx_tc->pattern_cnt == 0) {
                  MpmFactoryReClaimMpmCtx(de_ctx, sh->mpm_hscd_ctx_tc);
@@ -2783,6 +2546,7 @@ int PatternMatchPrepareGroup(DetectEngineCtx *de_ctx, SigGroupHead *sh)
                  }
              }
          }
+
          if (sh->mpm_huad_ctx_ts != NULL) {
              if (sh->mpm_huad_ctx_ts->pattern_cnt == 0) {
                  MpmFactoryReClaimMpmCtx(de_ctx, sh->mpm_huad_ctx_ts);
@@ -2794,17 +2558,7 @@ int PatternMatchPrepareGroup(DetectEngineCtx *de_ctx, SigGroupHead *sh)
                  }
              }
          }
-         if (sh->mpm_huad_ctx_tc != NULL) {
-             if (sh->mpm_huad_ctx_tc->pattern_cnt == 0) {
-                 MpmFactoryReClaimMpmCtx(de_ctx, sh->mpm_huad_ctx_tc);
-                 sh->mpm_huad_ctx_tc = NULL;
-             } else {
-                 if (de_ctx->sgh_mpm_context == ENGINE_SGH_MPM_FACTORY_CONTEXT_FULL) {
-                     if (mpm_table[sh->mpm_huad_ctx_tc->mpm_type].Prepare != NULL)
-                         mpm_table[sh->mpm_huad_ctx_tc->mpm_type].Prepare(sh->mpm_huad_ctx_tc);
-                 }
-             }
-         }
+
          if (sh->mpm_hhhd_ctx_ts != NULL) {
              if (sh->mpm_hhhd_ctx_ts->pattern_cnt == 0) {
                  MpmFactoryReClaimMpmCtx(de_ctx, sh->mpm_hhhd_ctx_ts);
@@ -2816,17 +2570,7 @@ int PatternMatchPrepareGroup(DetectEngineCtx *de_ctx, SigGroupHead *sh)
                  }
              }
          }
-         if (sh->mpm_hhhd_ctx_tc != NULL) {
-             if (sh->mpm_hhhd_ctx_tc->pattern_cnt == 0) {
-                 MpmFactoryReClaimMpmCtx(de_ctx, sh->mpm_hhhd_ctx_tc);
-                 sh->mpm_hhhd_ctx_tc = NULL;
-             } else {
-                 if (de_ctx->sgh_mpm_context == ENGINE_SGH_MPM_FACTORY_CONTEXT_FULL) {
-                     if (mpm_table[sh->mpm_hhhd_ctx_tc->mpm_type].Prepare != NULL)
-                         mpm_table[sh->mpm_hhhd_ctx_tc->mpm_type].Prepare(sh->mpm_hhhd_ctx_tc);
-                 }
-             }
-         }
+
          if (sh->mpm_hrhhd_ctx_ts != NULL) {
              if (sh->mpm_hrhhd_ctx_ts->pattern_cnt == 0) {
                  MpmFactoryReClaimMpmCtx(de_ctx, sh->mpm_hrhhd_ctx_ts);
@@ -2838,17 +2582,7 @@ int PatternMatchPrepareGroup(DetectEngineCtx *de_ctx, SigGroupHead *sh)
                  }
              }
          }
-         if (sh->mpm_hrhhd_ctx_tc != NULL) {
-             if (sh->mpm_hrhhd_ctx_tc->pattern_cnt == 0) {
-                 MpmFactoryReClaimMpmCtx(de_ctx, sh->mpm_hrhhd_ctx_tc);
-                 sh->mpm_hrhhd_ctx_tc = NULL;
-             } else {
-                 if (de_ctx->sgh_mpm_context == ENGINE_SGH_MPM_FACTORY_CONTEXT_FULL) {
-                     if (mpm_table[sh->mpm_hrhhd_ctx_tc->mpm_type].Prepare != NULL)
-                         mpm_table[sh->mpm_hrhhd_ctx_tc->mpm_type].Prepare(sh->mpm_hrhhd_ctx_tc);
-                 }
-             }
-         }
+
          if (sh->mpm_dnsquery_ctx_ts != NULL) {
              if (sh->mpm_dnsquery_ctx_ts->pattern_cnt == 0) {
                  MpmFactoryReClaimMpmCtx(de_ctx, sh->mpm_dnsquery_ctx_ts);
@@ -2885,10 +2619,6 @@ int PatternMatchPrepareGroup(DetectEngineCtx *de_ctx, SigGroupHead *sh)
         sh->mpm_hcd_ctx_ts = NULL;
         MpmFactoryReClaimMpmCtx(de_ctx, sh->mpm_hrud_ctx_ts);
         sh->mpm_hrud_ctx_ts = NULL;
-        MpmFactoryReClaimMpmCtx(de_ctx, sh->mpm_hsmd_ctx_ts);
-        sh->mpm_hsmd_ctx_ts = NULL;
-        MpmFactoryReClaimMpmCtx(de_ctx, sh->mpm_hscd_ctx_ts);
-        sh->mpm_hscd_ctx_ts = NULL;
         MpmFactoryReClaimMpmCtx(de_ctx, sh->mpm_huad_ctx_ts);
         sh->mpm_huad_ctx_ts = NULL;
         MpmFactoryReClaimMpmCtx(de_ctx, sh->mpm_hhhd_ctx_ts);
@@ -2904,30 +2634,16 @@ int PatternMatchPrepareGroup(DetectEngineCtx *de_ctx, SigGroupHead *sh)
         sh->mpm_proto_udp_ctx_tc = NULL;
         MpmFactoryReClaimMpmCtx(de_ctx, sh->mpm_stream_ctx_tc);
         sh->mpm_stream_ctx_tc = NULL;
-        MpmFactoryReClaimMpmCtx(de_ctx, sh->mpm_uri_ctx_tc);
-        sh->mpm_uri_ctx_tc = NULL;
-        MpmFactoryReClaimMpmCtx(de_ctx, sh->mpm_hcbd_ctx_tc);
-        sh->mpm_hcbd_ctx_tc = NULL;
         MpmFactoryReClaimMpmCtx(de_ctx, sh->mpm_hhd_ctx_tc);
         sh->mpm_hhd_ctx_tc = NULL;
         MpmFactoryReClaimMpmCtx(de_ctx, sh->mpm_hrhd_ctx_tc);
         sh->mpm_hrhd_ctx_tc = NULL;
-        MpmFactoryReClaimMpmCtx(de_ctx, sh->mpm_hmd_ctx_tc);
-        sh->mpm_hmd_ctx_tc = NULL;
         MpmFactoryReClaimMpmCtx(de_ctx, sh->mpm_hcd_ctx_tc);
         sh->mpm_hcd_ctx_tc = NULL;
-        MpmFactoryReClaimMpmCtx(de_ctx, sh->mpm_hrud_ctx_tc);
-        sh->mpm_hrud_ctx_tc = NULL;
         MpmFactoryReClaimMpmCtx(de_ctx, sh->mpm_hsmd_ctx_tc);
         sh->mpm_hsmd_ctx_tc = NULL;
         MpmFactoryReClaimMpmCtx(de_ctx, sh->mpm_hscd_ctx_tc);
         sh->mpm_hscd_ctx_tc = NULL;
-        MpmFactoryReClaimMpmCtx(de_ctx, sh->mpm_huad_ctx_tc);
-        sh->mpm_huad_ctx_tc = NULL;
-        MpmFactoryReClaimMpmCtx(de_ctx, sh->mpm_hhhd_ctx_tc);
-        sh->mpm_hhhd_ctx_tc = NULL;
-        MpmFactoryReClaimMpmCtx(de_ctx, sh->mpm_hrhhd_ctx_tc);
-        sh->mpm_hrhhd_ctx_tc = NULL;
     }
 
     return 0;
index 784d0015d6584e32874e37d6be1f375e3a54aacf..a00a944bb9bf34bd248433172939d04a1bc2a2f1 100644 (file)
@@ -3485,12 +3485,6 @@ int BuildDestinationAddressHeads(DetectEngineCtx *de_ctx, DetectAddressHead *hea
 
                     de_ctx->mpm_uri_tot_patcnt += sgr->sh->mpm_uri_ctx_ts->pattern_cnt;
                 }
-                if (sgr->sh->mpm_uri_ctx_tc != NULL) {
-                    if (de_ctx->mpm_uri_max_patcnt < sgr->sh->mpm_uri_ctx_tc->pattern_cnt)
-                        de_ctx->mpm_uri_max_patcnt = sgr->sh->mpm_uri_ctx_tc->pattern_cnt;
-
-                    de_ctx->mpm_uri_tot_patcnt += sgr->sh->mpm_uri_ctx_tc->pattern_cnt;
-                }
                 /* dbg */
                 if (!(sgr->sh->flags & SIG_GROUP_HEAD_MPM_COPY) && sgr->sh->mpm_proto_tcp_ctx_ts) {
                     de_ctx->mpm_memory_size += sgr->sh->mpm_proto_tcp_ctx_ts->memory_size;
@@ -3510,9 +3504,6 @@ int BuildDestinationAddressHeads(DetectEngineCtx *de_ctx, DetectAddressHead *hea
                 if (!(sgr->sh->flags & SIG_GROUP_HEAD_MPM_URI_COPY) && sgr->sh->mpm_uri_ctx_ts) {
                     de_ctx->mpm_memory_size += sgr->sh->mpm_uri_ctx_ts->memory_size;
                 }
-                if (!(sgr->sh->flags & SIG_GROUP_HEAD_MPM_URI_COPY) && sgr->sh->mpm_uri_ctx_tc) {
-                    de_ctx->mpm_memory_size += sgr->sh->mpm_uri_ctx_tc->memory_size;
-                }
 
                 SigGroupHeadHashAdd(de_ctx, sgr->sh);
                 SigGroupHeadStore(de_ctx, sgr->sh);
@@ -3781,12 +3772,6 @@ int BuildDestinationAddressHeadsWithBothPorts(DetectEngineCtx *de_ctx, DetectAdd
 
                                     de_ctx->mpm_uri_tot_patcnt += dp->sh->mpm_uri_ctx_ts->pattern_cnt;
                                 }
-                                if (dp->sh->mpm_uri_ctx_tc != NULL) {
-                                    if (de_ctx->mpm_uri_max_patcnt < dp->sh->mpm_uri_ctx_tc->pattern_cnt)
-                                        de_ctx->mpm_uri_max_patcnt = dp->sh->mpm_uri_ctx_tc->pattern_cnt;
-
-                                    de_ctx->mpm_uri_tot_patcnt += dp->sh->mpm_uri_ctx_tc->pattern_cnt;
-                                }
                                 /* dbg */
                                 if (!(dp->sh->flags & SIG_GROUP_HEAD_MPM_COPY) && dp->sh->mpm_proto_tcp_ctx_ts) {
                                     de_ctx->mpm_memory_size += dp->sh->mpm_proto_tcp_ctx_ts->memory_size;
@@ -3806,9 +3791,6 @@ int BuildDestinationAddressHeadsWithBothPorts(DetectEngineCtx *de_ctx, DetectAdd
                                 if (!(dp->sh->flags & SIG_GROUP_HEAD_MPM_URI_COPY) && dp->sh->mpm_uri_ctx_ts) {
                                     de_ctx->mpm_memory_size += dp->sh->mpm_uri_ctx_ts->memory_size;
                                 }
-                                if (!(dp->sh->flags & SIG_GROUP_HEAD_MPM_URI_COPY) && dp->sh->mpm_uri_ctx_tc) {
-                                    de_ctx->mpm_memory_size += dp->sh->mpm_uri_ctx_tc->memory_size;
-                                }
 
                                 SigGroupHeadDPortHashAdd(de_ctx, dp->sh);
                                 SigGroupHeadStore(de_ctx, dp->sh);
index 3a7750a408bd5766128489849d963c71313aca7e..a2c82a63e459506e45d8a106054dec48827dd781 100644 (file)
@@ -956,14 +956,11 @@ typedef struct SigGroupHead_ {
     MpmCtx *mpm_stream_ctx_ts;
     MpmCtx *mpm_uri_ctx_ts;
     MpmCtx *mpm_hcbd_ctx_ts;
-    MpmCtx *mpm_hsbd_ctx_ts;
     MpmCtx *mpm_hhd_ctx_ts;
     MpmCtx *mpm_hrhd_ctx_ts;
     MpmCtx *mpm_hmd_ctx_ts;
     MpmCtx *mpm_hcd_ctx_ts;
     MpmCtx *mpm_hrud_ctx_ts;
-    MpmCtx *mpm_hsmd_ctx_ts;
-    MpmCtx *mpm_hscd_ctx_ts;
     MpmCtx *mpm_huad_ctx_ts;
     MpmCtx *mpm_hhhd_ctx_ts;
     MpmCtx *mpm_hrhhd_ctx_ts;
@@ -972,19 +969,12 @@ typedef struct SigGroupHead_ {
     MpmCtx *mpm_proto_tcp_ctx_tc;
     MpmCtx *mpm_proto_udp_ctx_tc;
     MpmCtx *mpm_stream_ctx_tc;
-    MpmCtx *mpm_uri_ctx_tc;
-    MpmCtx *mpm_hcbd_ctx_tc;
     MpmCtx *mpm_hsbd_ctx_tc;
     MpmCtx *mpm_hhd_ctx_tc;
     MpmCtx *mpm_hrhd_ctx_tc;
-    MpmCtx *mpm_hmd_ctx_tc;
     MpmCtx *mpm_hcd_ctx_tc;
-    MpmCtx *mpm_hrud_ctx_tc;
     MpmCtx *mpm_hsmd_ctx_tc;
     MpmCtx *mpm_hscd_ctx_tc;
-    MpmCtx *mpm_huad_ctx_tc;
-    MpmCtx *mpm_hhhd_ctx_tc;
-    MpmCtx *mpm_hrhhd_ctx_tc;
 
     uint16_t mpm_uricontent_maxlen;