]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
detect/dns: update buffer initialization logic
authorVictor Julien <vjulien@oisf.net>
Sat, 28 Jan 2023 09:08:29 +0000 (10:08 +0100)
committerVictor Julien <vjulien@oisf.net>
Sat, 28 Jan 2023 11:46:41 +0000 (12:46 +0100)
src/detect-dns-query.c

index b2e37493cd0482d1485c52f7ad4c03b9bba926c9..a1831322793357c3444fe006cfec7a7c5ca963cb 100644 (file)
@@ -73,8 +73,8 @@ struct DnsQueryGetDataArgs {
 };
 
 static InspectionBuffer *DnsQueryGetData(DetectEngineThreadCtx *det_ctx,
-        const DetectEngineTransforms *transforms,
-        Flow *f, struct DnsQueryGetDataArgs *cbdata, int list_id, bool first)
+        const DetectEngineTransforms *transforms, Flow *f, struct DnsQueryGetDataArgs *cbdata,
+        int list_id)
 {
     SCEnter();
 
@@ -82,7 +82,7 @@ static InspectionBuffer *DnsQueryGetData(DetectEngineThreadCtx *det_ctx,
             InspectionBufferMultipleForListGet(det_ctx, list_id, cbdata->local_id);
     if (buffer == NULL)
         return NULL;
-    if (!first && buffer->inspect != NULL)
+    if (buffer->initialized)
         return buffer;
 
     const uint8_t *data;
@@ -108,8 +108,8 @@ static uint8_t DetectEngineInspectDnsQuery(DetectEngineCtx *de_ctx, DetectEngine
 
     while(1) {
         struct DnsQueryGetDataArgs cbdata = { local_id, txv, };
-        InspectionBuffer *buffer = DnsQueryGetData(det_ctx,
-            transforms, f, &cbdata, engine->sm_list, false);
+        InspectionBuffer *buffer =
+                DnsQueryGetData(det_ctx, transforms, f, &cbdata, engine->sm_list);
         if (buffer == NULL || buffer->inspect == NULL)
             break;
 
@@ -159,8 +159,7 @@ static void PrefilterTxDnsQuery(DetectEngineThreadCtx *det_ctx, const void *pect
         // loop until we get a NULL
 
         struct DnsQueryGetDataArgs cbdata = { local_id, txv };
-        InspectionBuffer *buffer = DnsQueryGetData(det_ctx, ctx->transforms,
-                f, &cbdata, list_id, true);
+        InspectionBuffer *buffer = DnsQueryGetData(det_ctx, ctx->transforms, f, &cbdata, list_id);
         if (buffer == NULL)
             break;