]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
cip/enip: dynamic buffer
authorVictor Julien <victor@inliniac.net>
Sat, 10 Dec 2016 20:55:51 +0000 (21:55 +0100)
committerVictor Julien <victor@inliniac.net>
Thu, 16 Feb 2017 09:35:40 +0000 (10:35 +0100)
src/detect-cipservice.c
src/detect-engine.c
src/detect.h

index 68a0a96d1ec291ba44fa108218ab3e6c28b7c729..8a6d61b9042999f93b6bc6b81e7149a975c5ec58 100644 (file)
@@ -42,6 +42,7 @@
 static int DetectCipServiceSetup(DetectEngineCtx *, Signature *, char *);
 static void DetectCipServiceFree(void *);
 static void DetectCipServiceRegisterTests(void);
+static int g_cip_buffer_id = 0;
 
 /**
  * \brief Registration function for cip_service: keyword
@@ -58,13 +59,15 @@ void DetectCipServiceRegister(void)
     sigmatch_table[DETECT_CIPSERVICE].RegisterTests
             = DetectCipServiceRegisterTests;
 
-    DetectAppLayerInspectEngineRegister(ALPROTO_ENIP, SIG_FLAG_TOSERVER,
-            DETECT_SM_LIST_CIP_MATCH,
+    DetectAppLayerInspectEngineRegister2("cip",
+            ALPROTO_ENIP, SIG_FLAG_TOSERVER,
             DetectEngineInspectCIP);
-    DetectAppLayerInspectEngineRegister(ALPROTO_ENIP, SIG_FLAG_TOCLIENT,
-            DETECT_SM_LIST_CIP_MATCH,
+    DetectAppLayerInspectEngineRegister2("cip",
+            ALPROTO_ENIP, SIG_FLAG_TOCLIENT,
             DetectEngineInspectCIP);
 
+    g_cip_buffer_id = DetectBufferTypeGetByName("cip");
+
     SCReturn;
 }
 
@@ -225,7 +228,7 @@ static int DetectCipServiceSetup(DetectEngineCtx *de_ctx, Signature *s,
 
     s->alproto = ALPROTO_ENIP;
 
-    SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_CIP_MATCH);
+    SigMatchAppendSMToList(s, sm, g_cip_buffer_id);
 
     SCReturnInt(0);
 
@@ -301,6 +304,7 @@ static void DetectCipServiceRegisterTests(void)
 static int DetectEnipCommandSetup(DetectEngineCtx *, Signature *, char *);
 static void DetectEnipCommandFree(void *);
 static void DetectEnipCommandRegisterTests(void);
+static int g_enip_buffer_id = 0;
 
 /**
  * \brief Registration function for enip_command: keyword
@@ -317,12 +321,14 @@ void DetectEnipCommandRegister(void)
     sigmatch_table[DETECT_ENIPCOMMAND].RegisterTests
             = DetectEnipCommandRegisterTests;
 
-    DetectAppLayerInspectEngineRegister(ALPROTO_ENIP, SIG_FLAG_TOSERVER,
-            DETECT_SM_LIST_ENIP_MATCH,
+    DetectAppLayerInspectEngineRegister2("enip",
+            ALPROTO_ENIP, SIG_FLAG_TOSERVER,
             DetectEngineInspectENIP);
-    DetectAppLayerInspectEngineRegister(ALPROTO_ENIP, SIG_FLAG_TOCLIENT,
-            DETECT_SM_LIST_ENIP_MATCH,
+    DetectAppLayerInspectEngineRegister2("enip",
+            ALPROTO_ENIP, SIG_FLAG_TOCLIENT,
             DetectEngineInspectENIP);
+
+    g_enip_buffer_id = DetectBufferTypeGetByName("enip");
 }
 
 /**
@@ -399,7 +405,7 @@ static int DetectEnipCommandSetup(DetectEngineCtx *de_ctx, Signature *s,
     sm->ctx = (void *) enipcmdd;
 
     s->alproto = ALPROTO_ENIP;
-    SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_ENIP_MATCH);
+    SigMatchAppendSMToList(s, sm, g_enip_buffer_id);
 
     SCReturnInt(0);
 
index 0c5fd77f88acf23d194bb53c7848d878b427ad04..a577af12a93162b4df7a10b47549ffe5252b7e5a 100644 (file)
@@ -2811,11 +2811,6 @@ const char *DetectSigmatchListEnumToString(enum DetectSigmatchListEnum type)
         case DETECT_SM_LIST_FILEMATCH:
             return "file";
 
-        case DETECT_SM_LIST_CIP_MATCH:
-            return "cip";
-        case DETECT_SM_LIST_ENIP_MATCH:
-            return "enip";
-
         case DETECT_SM_LIST_BASE64_DATA:
             return "base64_data";
 
index 1e98e8da4d7885bbadcc8530e6dcebeab5f68f86..7895ec683f6fbb550404e9b3a3f2caef40a9eb16 100644 (file)
@@ -120,9 +120,6 @@ enum DetectSigmatchListEnum {
 
     DETECT_SM_LIST_FILEMATCH,
 
-    DETECT_SM_LIST_CIP_MATCH,
-    DETECT_SM_LIST_ENIP_MATCH,
-
     DETECT_SM_LIST_TEMPLATE_BUFFER_MATCH,
 
     DETECT_SM_LIST_MAX,