]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
detect: register multi-buffer keywords 8792/head
authorVictor Julien <vjulien@oisf.net>
Fri, 24 Mar 2023 16:19:50 +0000 (17:19 +0100)
committerVictor Julien <vjulien@oisf.net>
Mon, 1 May 2023 19:56:29 +0000 (21:56 +0200)
Register the keywords that use multi buffer support as such, so that
rule parsing can set them up with multi-instance support.

Ticket: #5784.

14 files changed:
src/detect-dns-query.c
src/detect-file-data.c
src/detect-filemagic.c
src/detect-filename.c
src/detect-http2.c
src/detect-ike-vendor.c
src/detect-krb5-cname.c
src/detect-krb5-sname.c
src/detect-mqtt-subscribe-topic.c
src/detect-mqtt-unsubscribe-topic.c
src/detect-quic-cyu-hash.c
src/detect-quic-cyu-string.c
src/detect-tls-cert-subject.c
src/detect-tls-certs.c

index 67ec7aba9b6f037ae7e36703728edbfaddbadd86..deb292dd1fcf34fcb9cf0ccda10c906a60e6ae06 100644 (file)
@@ -222,6 +222,7 @@ void DetectDnsQueryRegister (void)
 
     DetectBufferTypeSetDescriptionByName("dns_query",
             "dns request query");
+    DetectBufferTypeSupportsMultiInstance("dns_query");
 
     g_dns_query_buffer_id = DetectBufferTypeGetByName("dns_query");
 
index c81e5bb650f2c2eab3ed194d716bd069af2e6046..ffe5da488ac63f804b0b57db289facac685ca9bd 100644 (file)
@@ -159,6 +159,7 @@ void DetectFiledataRegister(void)
             "file_data", ALPROTO_FTP, SIG_FLAG_TOCLIENT, 0, DetectEngineInspectFiledata, NULL);
 
     DetectBufferTypeSetDescriptionByName("file_data", "data from tracked files");
+    DetectBufferTypeSupportsMultiInstance("file_data");
 
     g_file_data_buffer_id = DetectBufferTypeGetByName("file_data");
 }
index e68d659d64b25c89d221e0d74ef08570f81e468b..803ff76dcee2901bf8cdb156932993835085418a 100644 (file)
@@ -162,6 +162,7 @@ void DetectFilemagicRegister(void)
 
     DetectBufferTypeSetDescriptionByName("file.magic",
             "file magic");
+    DetectBufferTypeSupportsMultiInstance("file.magic");
 
     g_file_magic_buffer_id = DetectBufferTypeGetByName("file.magic");
        SCLogDebug("registering filemagic rule option");
index e38754f7d3201ea9921d54ef9020a361d4731dd6..a20666a3d916a843abceb56a1c5e72344b789513 100644 (file)
@@ -160,6 +160,7 @@ void DetectFilenameRegister(void)
     }
 
     DetectBufferTypeSetDescriptionByName("file.name", "file name");
+    DetectBufferTypeSupportsMultiInstance("file.name");
 
     g_file_name_buffer_id = DetectBufferTypeGetByName("file.name");
        SCLogDebug("registering filename rule option");
index 7006145031b75258432a86fc365f08b290e6ceab..f55db43e6f81cd3ddaa9a43a5a2594b17264530c 100644 (file)
@@ -201,7 +201,7 @@ void DetectHttp2Register(void)
     DetectAppLayerInspectEngineRegister2("http2_header_name",
                                          ALPROTO_HTTP2, SIG_FLAG_TOSERVER, HTTP2StateOpen,
                                          DetectEngineInspectHttp2HeaderName, NULL);
-
+    DetectBufferTypeSupportsMultiInstance("http2_header_name");
     DetectBufferTypeSetDescriptionByName("http2_header_name",
                                          "HTTP2 header name");
     g_http2_header_name_buffer_id = DetectBufferTypeGetByName("http2_header_name");
@@ -211,6 +211,7 @@ void DetectHttp2Register(void)
     sigmatch_table[DETECT_HTTP2_HEADER].url = "/rules/http2-keywords.html#header";
     sigmatch_table[DETECT_HTTP2_HEADER].Setup = DetectHTTP2headerSetup;
     sigmatch_table[DETECT_HTTP2_HEADER].flags |= SIGMATCH_NOOPT | SIGMATCH_INFO_STICKY_BUFFER;
+    DetectBufferTypeSupportsMultiInstance("http2_header");
 
     DetectAppLayerMpmRegister2("http2_header", SIG_FLAG_TOCLIENT, 2,
                                PrefilterMpmHttp2HeaderRegister, NULL,
index edefc438224acaf468dd7afe7fe1e12f6f7d861b..65e7c60d0613ddad4590d3c91768219e437de858 100644 (file)
@@ -189,6 +189,8 @@ void DetectIkeVendorRegister(void)
             "ike.vendor", ALPROTO_IKE, SIG_FLAG_TOSERVER, 1, DetectEngineInspectIkeVendor, NULL);
 
     g_ike_vendor_buffer_id = DetectBufferTypeGetByName("ike.vendor");
+
+    DetectBufferTypeSupportsMultiInstance("ike.vendor");
 }
 
 /**
index 257f3ed07124ffc0f4d7da3d3531907a09b064ac..239ab3aa9a5ecddb74d64c0fc1f63b0ace937c66 100644 (file)
@@ -209,4 +209,6 @@ void DetectKrb5CNameRegister(void)
             "Kerberos 5 ticket client name");
 
     g_krb5_cname_buffer_id = DetectBufferTypeGetByName("krb5_cname");
+
+    DetectBufferTypeSupportsMultiInstance("krb5_cname");
 }
index 79c08f38a9967c725acddcf1ab451800f00d8c3d..a37ff7a3bdbb0ec7ae316b67321c768bfdaa0004 100644 (file)
@@ -209,4 +209,6 @@ void DetectKrb5SNameRegister(void)
             "Kerberos 5 ticket server name");
 
     g_krb5_sname_buffer_id = DetectBufferTypeGetByName("krb5_sname");
+
+    DetectBufferTypeSupportsMultiInstance("krb5_sname");
 }
index 24c601c6e2afc949a54c68077346a8461a33eeb8..107190f7960f80b42522b9e14837ca88a14895c5 100644 (file)
@@ -224,6 +224,8 @@ void DetectMQTTSubscribeTopicRegister (void)
             "subscribe topic query");
 
     g_mqtt_subscribe_topic_buffer_id = DetectBufferTypeGetByName("mqtt.subscribe.topic");
+
+    DetectBufferTypeSupportsMultiInstance("mqtt.subscribe.topic");
 }
 
 /**
index d349971bee024e8a9d9d80250fce07db47367656..cbd5a84e029962fb0888f271ec26d4a8c1b726d2 100644 (file)
@@ -224,6 +224,8 @@ void DetectMQTTUnsubscribeTopicRegister (void)
             "unsubscribe topic query");
 
     g_mqtt_unsubscribe_topic_buffer_id = DetectBufferTypeGetByName("mqtt.unsubscribe.topic");
+
+    DetectBufferTypeSupportsMultiInstance("mqtt.unsubscribe.topic");
 }
 
 /**
index 91e58eb543c1f0415d0dacf01a3d4a8cb9846e45..b83e192e7d2c831f5c68579d7e97cefb29ba297a 100644 (file)
@@ -245,6 +245,8 @@ void DetectQuicCyuHashRegister(void)
     g_buffer_id = DetectBufferTypeGetByName(BUFFER_NAME);
 
     DetectBufferTypeRegisterValidateCallback(BUFFER_NAME, DetectQuicHashValidateCallback);
+
+    DetectBufferTypeSupportsMultiInstance(BUFFER_NAME);
 }
 
 #ifdef UNITTESTS
index d1ec757b21c9be9f7226c501c189d05e771b49f8..08848ca00fde56dc3aa44d01a1593c4ead3677da 100644 (file)
@@ -197,6 +197,8 @@ void DetectQuicCyuStringRegister(void)
 
     g_buffer_id = DetectBufferTypeGetByName(BUFFER_NAME);
 
+    DetectBufferTypeSupportsMultiInstance(BUFFER_NAME);
+
     SCLogDebug("registering " BUFFER_NAME " rule option");
 }
 
index 282ecd10e139d316b16c741d87b55bd2ff84b355..9ec7fb96fb1f9b6f04848b9677d1eb96b64298d1 100644 (file)
@@ -92,6 +92,8 @@ void DetectTlsSubjectRegister(void)
             PrefilterGenericMpmRegister, GetData, ALPROTO_TLS,
             TLS_STATE_CERT_READY);
 
+    DetectBufferTypeSupportsMultiInstance("tls.cert_subject");
+
     DetectBufferTypeSetDescriptionByName("tls.cert_subject",
             "TLS certificate subject");
 
index a5e7a11cea2b8c76715260131ba96ea9480aa51a..02b35ba1e60615e0ca591a4233aff132f05ff697 100644 (file)
@@ -110,6 +110,8 @@ void DetectTlsCertsRegister(void)
 
     DetectBufferTypeSetDescriptionByName("tls.certs", "TLS certificate");
 
+    DetectBufferTypeSupportsMultiInstance("tls.certs");
+
     g_tls_certs_buffer_id = DetectBufferTypeGetByName("tls.certs");
 }