]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
content inspection: support transforms
authorVictor Julien <victor@inliniac.net>
Mon, 23 Oct 2017 11:27:32 +0000 (13:27 +0200)
committerVictor Julien <victor@inliniac.net>
Wed, 14 Feb 2018 13:25:46 +0000 (14:25 +0100)
Make sure content is applied to the transformed version of a buffer.

Support content with its modifiers, and also isdataat, pcre, bytetest
and bytejump.

src/detect-bytejump.c
src/detect-bytetest.c
src/detect-content.c
src/detect-isdataat.c
src/detect-pcre.c

index 6cb70aff9bbbfe941051dfb116295fc5e9629983..31ae9378f798e570ea4c0b3010a006a5f97d187f 100644 (file)
@@ -517,6 +517,9 @@ static int DetectBytejumpSetup(DetectEngineCtx *de_ctx, Signature *s, const char
 
     int sm_list;
     if (s->init_data->list != DETECT_SM_LIST_NOTSET) {
+        if (DetectBufferGetActiveList(de_ctx, s) == -1)
+            goto error;
+
         sm_list = s->init_data->list;
 
         if (data->flags & DETECT_BYTEJUMP_RELATIVE) {
index 4dcb3127fe3b24cb6512e17e23c24005e5158273..5573e786651c761be2d5cc77cb4d8d1279029e7b 100644 (file)
@@ -444,6 +444,9 @@ static int DetectBytetestSetup(DetectEngineCtx *de_ctx, Signature *s, const char
 
     int sm_list;
     if (s->init_data->list != DETECT_SM_LIST_NOTSET) {
+        if (DetectBufferGetActiveList(de_ctx, s) == -1)
+            goto error;
+
         sm_list = s->init_data->list;
 
         if (data->flags & DETECT_BYTETEST_RELATIVE) {
index a8d043001425d69b3fb9337d74df4c05aecd5be8..6eb47aeb99f2364026648614a04bcd90912ff282 100644 (file)
@@ -329,6 +329,9 @@ int DetectContentSetup(DetectEngineCtx *de_ctx, Signature *s, const char *conten
 
     DetectContentPrint(cd);
 
+    if (DetectBufferGetActiveList(de_ctx, s) == -1)
+        goto error;
+
     int sm_list = s->init_data->list;
     if (sm_list == DETECT_SM_LIST_NOTSET) {
         sm_list = DETECT_SM_LIST_PMATCH;
index 8cca5571a2e3c79c81f7b511be39f660971d8786..201870e89fa78bb80fb173871992ed27582db110 100644 (file)
@@ -217,6 +217,8 @@ int DetectIsdataatSetup (DetectEngineCtx *de_ctx, Signature *s, const char *isda
 
     int sm_list;
     if (s->init_data->list != DETECT_SM_LIST_NOTSET) {
+        if (DetectBufferGetActiveList(de_ctx, s) == -1)
+            return -1;
         sm_list = s->init_data->list;
 
         if (idad->flags & ISDATAAT_RELATIVE) {
index 20776ddd1ed0d3161e33ef17303b0482a3736bf8..d4a4e89d40ef1c6cb9465b86c2f61c2318f59fa0 100644 (file)
@@ -827,6 +827,9 @@ static int DetectPcreSetup (DetectEngineCtx *de_ctx, Signature *s, const char *r
 
     int sm_list = -1;
     if (s->init_data->list != DETECT_SM_LIST_NOTSET) {
+        if (DetectBufferGetActiveList(de_ctx, s) == -1)
+            goto error;
+
         s->flags |= SIG_FLAG_APPLAYER;
         sm_list = s->init_data->list;
     } else {