]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
Merge pull request #1810 in SNORT/snort3 from ~SBAIGAL/snort3:dns_thread_local_fix...
authorMichael Altizer (mialtize) <mialtize@cisco.com>
Tue, 22 Oct 2019 17:50:32 +0000 (13:50 -0400)
committerMichael Altizer (mialtize) <mialtize@cisco.com>
Tue, 22 Oct 2019 17:50:32 +0000 (13:50 -0400)
Squashed commit of the following:

commit 10494a848f9757b40c049cc43bede52b5800cca6
Author: Steven Baigal (sbaigal) <sbaigal@cisco.com>
Date:   Mon Oct 21 15:43:06 2019 -0400

    dns: made changes to make sure DNS parsing is thread safe

src/service_inspectors/dns/dns.cc

index b98283b7c169187437fa14b51eea58c593f6d7ef..1d5bf4cd191ddf5ffdba9a306903c475d7e79802 100644 (file)
@@ -61,8 +61,6 @@ static void snort_dns(Packet* p);
 
 unsigned DnsFlowData::inspector_id = 0;
 
-DNSData udpSessionData;
-
 DnsFlowData::DnsFlowData() : FlowData(inspector_id)
 {
     memset(&session, 0, sizeof(session));
@@ -90,7 +88,7 @@ static DNSData* SetNewDNSData(Packet* p)
     return &fd->session;
 }
 
-static DNSData* get_dns_session_data(Packet* p, bool from_server)
+static DNSData* get_dns_session_data(Packet* p, bool from_server, DNSData& udpSessionData)
 {
     DnsFlowData* fd;
 
@@ -976,9 +974,9 @@ static void snort_dns(Packet* p)
     // Get the direction of the packet.
     bool from_server = ( (p->is_from_server() ) ? true : false );
 
-
+    DNSData udp_session_data;
     // Attempt to get a previously allocated DNS block.
-    DNSData* dnsSessionData = get_dns_session_data(p, from_server);
+    DNSData* dnsSessionData = get_dns_session_data(p, from_server, udp_session_data);
 
     if (dnsSessionData == nullptr)
     {