]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
Merge pull request #2016 in SNORT/snort3 from ~ARMANDAV/snort3:appidbugfix to master
authorShravan Rangarajuvenkata (shrarang) <shrarang@cisco.com>
Wed, 19 Feb 2020 02:48:43 +0000 (02:48 +0000)
committerShravan Rangarajuvenkata (shrarang) <shrarang@cisco.com>
Wed, 19 Feb 2020 02:48:43 +0000 (02:48 +0000)
Squashed commit of the following:

commit 837f3ec09a88152c620c0a0138b9fb0c9fd9316d
Author: Arun Mandava <armandav@cisco.com>
Date:   Mon Feb 17 12:23:16 2020 -0500

    appid: handle invalid uri in http tunnel traffic

src/network_inspectors/appid/appid_http_session.h
src/network_inspectors/appid/test/appid_http_session_test.cc

index d6ad1f61cc0f48832355574f381fa5ced43e59ec..416ac7426e81fa8694f3a23b72eb1cfc4f89a1f3 100644 (file)
@@ -198,7 +198,10 @@ public:
     { return tun_dest; }
 
     void free_tun_dest()
-    { delete tun_dest; }
+    {
+        delete tun_dest;
+        tun_dest = nullptr;
+    }
 
     void reset_ptype_scan_counts();
 
index 7c1e7424b8c2da6f8c6ea0dcb3b0c9259c293cb0..2011dce88a70a262b385d2b477f755568d2b3152 100644 (file)
@@ -265,6 +265,23 @@ TEST(appid_http_session, set_tun_dest)
     CHECK_EQUAL((ipv6 == tun_dest->ip), true);
 }
 
+TEST(appid_http_session, set_tun_dest_bad_uri)
+{
+    const TunnelDest* tun_dest  = nullptr;
+    AppidChangeBits change_bits;
+    hsession.set_field(REQ_URI_FID, new std::string("[2001:db8:85a3::8a2e:370:1234]:51413"), change_bits);
+    hsession.set_tun_dest();
+    tun_dest = hsession.get_tun_dest();
+    CHECK(tun_dest != nullptr);
+
+    // Testing with bad URL
+    hsession.free_tun_dest();
+    hsession.set_field(REQ_URI_FID, new std::string("[2001:db8:85a3::8a2e:370:1235]"), change_bits);
+    hsession.set_tun_dest();
+    tun_dest = hsession.get_tun_dest();
+    CHECK(tun_dest == nullptr);
+}
+
 TEST(appid_http_session, change_bits_for_referred_appid)
 {
     // Testing set_referred_payload_app_id_data