From: Masud Hasan (mashasan) Date: Wed, 17 Mar 2021 20:53:12 +0000 (+0000) Subject: Merge pull request #2795 in SNORT/snort3 from ~MMATIRKO/snort3:hostclient_nullptr... X-Git-Tag: 3.1.3.0~13 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=453e88f0f48c681a04df1fcc83739369016df72d;p=thirdparty%2Fsnort3.git Merge pull request #2795 in SNORT/snort3 from ~MMATIRKO/snort3:hostclient_nullptr to master Squashed commit of the following: commit d5789022476a59edec4cfd73eea23d53664cdda2 Author: Michael Matirko Date: Thu Mar 11 15:15:57 2021 -0500 host_tracker: fully populate local hostclient before logging --- diff --git a/src/host_tracker/host_tracker.cc b/src/host_tracker/host_tracker.cc index c849db07b..2780401ac 100644 --- a/src/host_tracker/host_tracker.cc +++ b/src/host_tracker/host_tracker.cc @@ -404,6 +404,8 @@ bool HostTracker::add_client_payload(HostClient& hc, AppId payload, size_t max_p pld.second = true; client.num_visible_payloads++; + hc.payloads = client.payloads; + strncpy(hc.version, client.version, INFO_SIZE); return true; } if ( !invisible_swap_candidate and !pld.second ) @@ -416,6 +418,7 @@ bool HostTracker::add_client_payload(HostClient& hc, AppId payload, size_t max_p invisible_swap_candidate->first = payload; client.num_visible_payloads++; hc.payloads = client.payloads; + strncpy(hc.version, client.version, INFO_SIZE); return true; } diff --git a/src/network_inspectors/rna/rna_logger.cc b/src/network_inspectors/rna/rna_logger.cc index 6d568d968..9fec64241 100644 --- a/src/network_inspectors/rna/rna_logger.cc +++ b/src/network_inspectors/rna/rna_logger.cc @@ -81,13 +81,34 @@ static inline void rna_logger_message(const RnaLoggerEvent& rle, const Packet* p if ( rle.hc ) { + string payload_ids; + + for ( const auto& pld : rle.hc->payloads ) + { + if (pld.second) + payload_ids += payload_ids.size() ? "," : "" + to_string(pld.first); + } + if ( rle.hc->version[0] != '\0' ) - debug_logf(rna_trace, p, - "RNA client log: client %u, service %u, version %s\n", - rle.hc->id, rle.hc->service, rle.hc->version); + { + if ( rle.hc->payloads.size() ) + debug_logf(rna_trace, p, + "RNA client log: client %u, service %u, version %s, payloads: %s\n", + rle.hc->id, rle.hc->service, rle.hc->version, payload_ids.c_str()); + else + debug_logf(rna_trace, p, + "RNA client log: client %u, service %u, version %s\n", + rle.hc->id, rle.hc->service, rle.hc->version); + } else - debug_logf(rna_trace, p, "RNA client log: client %u, service %u\n", - rle.hc->id, rle.hc->service); + { + if ( rle.hc->payloads.size() ) + debug_logf(rna_trace, p, "RNA client log: client %u, service %u," + " payloads: %s\n", rle.hc->id, rle.hc->service, payload_ids.c_str()); + else + debug_logf(rna_trace, p, "RNA client log: client %u, service %u\n", + rle.hc->id, rle.hc->service); + } } if ( rle.ha ) {