]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
Pull request #4107: appid: fixing coverity issues
authorSreeja Athirkandathil Narayanan (sathirka) <sathirka@cisco.com>
Thu, 30 Nov 2023 14:10:27 +0000 (14:10 +0000)
committerChris Sherwin (chsherwi) <chsherwi@cisco.com>
Thu, 30 Nov 2023 14:10:27 +0000 (14:10 +0000)
Merge in SNORT/snort3 from ~SATHIRKA/snort3:appid_coverity to master

Squashed commit of the following:

commit 49746e192fce6caf2e7c19702c8fffdaaeabdb54
Author: Sreeja Athirkandathil Narayanan <sathirka@cisco.com>
Date:   Fri Nov 17 06:42:53 2023 -0500

    appid: fixing coverity issues

src/network_inspectors/appid/detector_plugins/http_url_patterns.h
src/network_inspectors/appid/service_plugins/service_bit.cc
src/network_inspectors/appid/service_plugins/service_discovery.cc
src/network_inspectors/appid/service_plugins/service_netbios.cc
src/network_inspectors/appid/service_plugins/service_ssl.cc
src/network_inspectors/appid/service_plugins/service_tns.cc

index 5f75fc57cae2d4129b39d78cb64da086c4115ee1..f17dec7c6899f2d124bfdbafe11ada57f886cbfe 100644 (file)
@@ -123,13 +123,13 @@ struct DetectorHTTPPattern
         return true;
     }
 
-    DHPSequence sequence;
-    AppId service_id;
-    AppId client_id;
-    AppId payload_id;
-    AppId app_id;
-    unsigned pattern_size;
-    const uint8_t* pattern;
+    DHPSequence sequence = SINGLE;
+    AppId service_id = 0;
+    AppId client_id = 0;
+    AppId payload_id = 0;
+    AppId app_id = 0;
+    unsigned pattern_size = 0;
+    const uint8_t* pattern = nullptr;
 };
 typedef std::vector<DetectorHTTPPattern> DetectorHTTPPatterns;
 
index 07bb135caae25285a9d7be5d14453fc20837cf98..668429efab4bfdd8c28786b720fd6863c6e977d8 100644 (file)
@@ -138,6 +138,8 @@ int BitServiceDetector::validate(AppIdDiscoveryArgs& args)
             ss->pos++;
             break;
         case BIT_STATE_MESSAGE_LEN:
+            if (ss->pos >= 4)
+                break;
             ss->l.raw_len[ss->pos] = data[offset];
             ss->pos++;
             if (ss->pos >= offsetof(ServiceBITMsg, code))
index 775343e515aec41c320f70845ff82d0f00333ac2..d1d71e2cd281c737b451cf24a60150ef5ed983a5 100644 (file)
@@ -126,12 +126,12 @@ void ServiceDiscovery::initialize(AppIdInspector& inspector)
     new RegTestServiceDetector2(this);
 #endif
 
-    for ( auto kv : tcp_detectors )
+    for ( auto& kv : tcp_detectors )
     {
         kv.second->initialize(inspector);
         service_detector_list.emplace_back(kv.second);
     }
-    for ( auto kv : udp_detectors )
+    for ( auto& kv : udp_detectors )
     {
         kv.second->initialize(inspector);
         service_detector_list.emplace_back(kv.second);
@@ -140,9 +140,9 @@ void ServiceDiscovery::initialize(AppIdInspector& inspector)
 
 void ServiceDiscovery::reload()
 {
-    for ( auto kv : tcp_detectors )
+    for ( auto& kv : tcp_detectors )
         kv.second->reload();
-    for ( auto kv : udp_detectors )
+    for ( auto& kv : udp_detectors )
         kv.second->reload();
 }
 
index a575cbf5dd22fd30810ae615d93fa7da9d891e07..16ab4fc400e4a377691ec16c483f0f220ae0c9d8 100644 (file)
@@ -618,7 +618,7 @@ not_mailslot:
         data += sizeof(NBDgmError);
         if (end != data)
             goto fail;
-        if (err->code < NBDGM_ERROR_CODE_MIN and
+        if (err->code < NBDGM_ERROR_CODE_MIN or
             err->code > NBDGM_ERROR_CODE_MAX)
         {
             goto fail;
index 0b0687fbd4e0053ae751fb3f57a38f39c2ea586f..d103efb2884757c7c682bf2a5e02476e661fbfc6 100644 (file)
@@ -428,8 +428,6 @@ int SslServiceDetector::validate(AppIdDiscoveryArgs& args)
                     }
                     break;
                 case SSLV3RecordType::SERVER_HELLO_DONE:
-                    if (size < offsetof(ServiceSSLV3Record, version))
-                        goto success;
                     if (rec->length)
                         goto fail;
                     if (ss->tot_length != offsetof(ServiceSSLV3Record, version))
index fc29b585472926b0a13d43acda7e031d3aed0de4..627889ff0acf49cfa3b4df4d68744746f680d4b1 100644 (file)
@@ -228,9 +228,11 @@ int TnsServiceDetector::validate(AppIdDiscoveryArgs& args)
             break;
 
         case TNS_STATE_MESSAGE_ACCEPT:
+            if (ss->pos >= (ACCEPT_VERSION_OFFSET + 2))
+                break;
             ss->l.raw_len[ss->pos - ACCEPT_VERSION_OFFSET] = data[offset];
             ss->pos++;
-            if (ss->pos >= (ACCEPT_VERSION_OFFSET + 2))
+            if (ss->pos == (ACCEPT_VERSION_OFFSET + 2))
             {
                 switch (ntohs(ss->l.len))
                 {