]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
Merge pull request #2677 in SNORT/snort3 from ~ARMANDAV/snort3:revertperffix to master
authorMasud Hasan (mashasan) <mashasan@cisco.com>
Mon, 21 Dec 2020 13:53:10 +0000 (13:53 +0000)
committerMasud Hasan (mashasan) <mashasan@cisco.com>
Mon, 21 Dec 2020 13:53:10 +0000 (13:53 +0000)
Squashed commit of the following:

commit f75ee339e475c3a8c67a66f200f3c666eaf8a346
Author: Arun Mandava <armandav@cisco.com>
Date:   Thu Dec 17 23:20:40 2020 -0500

    rna: Fix version, vendor and user string comparison at maximum length

commit 55d146d81e50c91b372b3545fc5af399901f3b39
Author: Arun Mandava <armandav@cisco.com>
Date:   Thu Dec 17 18:58:06 2020 -0500

    rna: Revert rna performance optimizations

src/host_tracker/host_tracker.cc
src/network_inspectors/rna/rna_app_discovery.cc
src/network_inspectors/rna/rna_pnd.cc

index 0701bf1ac02766de96eb6c5c769a188b0cb08da3..a887d5ef1c00adb155d9c88e88b1eca8bf70d9b6 100644 (file)
@@ -658,8 +658,8 @@ bool HostTracker::update_service_info(HostApplication& ha, const char* vendor,
             HostApplicationInfo* available = nullptr;
             for ( auto& i : s.info )
             {
-                if ( (version and !strncmp(version, i.version, INFO_SIZE)) and
-                    (vendor and !strncmp(vendor, i.vendor, INFO_SIZE)) )
+                if ( (version and !strncmp(version, i.version, INFO_SIZE-1)) and
+                    (vendor and !strncmp(vendor, i.vendor, INFO_SIZE-1)) )
                 {
                     if ( i.visibility == false )
                     {
@@ -732,7 +732,7 @@ bool HostTracker::update_service_user(Port port, IpProtocol proto, const char* u
     if ( !ha or ha->visibility == false )
         return false;
 
-    if ( user and strncmp(user, ha->user, INFO_SIZE) )
+    if ( user and strncmp(user, ha->user, INFO_SIZE-1) )
     {
         strncpy(ha->user, user, INFO_SIZE);
         ha->user[INFO_SIZE-1] = '\0';
@@ -991,7 +991,7 @@ HostClient HostTracker::find_or_add_client(AppId id, const char* version, AppId
     {
         if ( c.id != APP_ID_NONE and c.id == id and c.service == service
             and ((c.version[0] == '\0' and !version) or
-            (version and strncmp(c.version, version, INFO_SIZE) == 0)) )
+            (version and strncmp(c.version, version, INFO_SIZE-1) == 0)) )
         {
             if ( c.visibility == false )
             {
index 70e55160e3301ccf2cc24e07d3060d7456ff1166..e59949a7d8b6a6f6b693fad5cfd0016a2dbf47a8 100644 (file)
 
 using namespace snort;
 
-RnaTracker RnaAppDiscovery::get_server_rna_tracker(const Packet* p, RNAFlow* rna_flow)
+RnaTracker RnaAppDiscovery::get_server_rna_tracker(const Packet* p, RNAFlow*)
 {
-    if ( !rna_flow->serverht )
-        rna_flow->serverht = host_cache.find(p->flow->server_ip);
-    return rna_flow->serverht;
+    return host_cache.find(p->flow->server_ip);
 }
 
-RnaTracker RnaAppDiscovery::get_client_rna_tracker(const Packet* p, RNAFlow* rna_flow)
+RnaTracker RnaAppDiscovery::get_client_rna_tracker(const Packet* p, RNAFlow*)
 {
-    if ( !rna_flow->clientht )
-        rna_flow->clientht = host_cache.find(p->flow->client_ip);
-    return rna_flow->clientht;
+    return host_cache.find(p->flow->client_ip);
 }
 
 void RnaAppDiscovery::process(AppidEvent* appid_event, DiscoveryFilter& filter,
index b61a7d41ebf4465d7f081e52c68febae5c537224..c2be2efe043c90934afe5441f138b8a03a172663 100644 (file)
@@ -199,10 +199,6 @@ void RnaPnd::discover_network(const Packet* p, uint8_t ttl)
             rna_flow = new RNAFlow();
             p->flow->set_flow_data(rna_flow);
         }
-        if ( p->is_from_client() )
-            rna_flow->clientht = ht;
-        else
-            rna_flow->serverht = ht;
     }
 
     if ( new_host )