From: Shravan Rangarajuvenkata (shrarang) Date: Wed, 19 Feb 2020 02:48:43 +0000 (+0000) Subject: Merge pull request #2016 in SNORT/snort3 from ~ARMANDAV/snort3:appidbugfix to master X-Git-Tag: 3.0.0-268~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a6440c9cc43e6892a17b11563d32c1340dd1c475;p=thirdparty%2Fsnort3.git Merge pull request #2016 in SNORT/snort3 from ~ARMANDAV/snort3:appidbugfix to master Squashed commit of the following: commit 837f3ec09a88152c620c0a0138b9fb0c9fd9316d Author: Arun Mandava Date: Mon Feb 17 12:23:16 2020 -0500 appid: handle invalid uri in http tunnel traffic --- diff --git a/src/network_inspectors/appid/appid_http_session.h b/src/network_inspectors/appid/appid_http_session.h index d6ad1f61c..416ac7426 100644 --- a/src/network_inspectors/appid/appid_http_session.h +++ b/src/network_inspectors/appid/appid_http_session.h @@ -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(); diff --git a/src/network_inspectors/appid/test/appid_http_session_test.cc b/src/network_inspectors/appid/test/appid_http_session_test.cc index 7c1e7424b..2011dce88 100644 --- a/src/network_inspectors/appid/test/appid_http_session_test.cc +++ b/src/network_inspectors/appid/test/appid_http_session_test.cc @@ -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