Merge in SNORT/snort3 from ~MASHASAN/snort3:longest_ua_match to master
Squashed commit of the following:
commit
b4dbadacd3b980129546806c411de4da6f96e5ff
Author: Masud Hasan <mashasan@cisco.com>
Date: Fri Jun 17 10:31:03 2022 -0400
rna: Use the longest user agent fingerprint among multiple matches
sort(matched_parts.begin(), matched_parts.end(), CompareParts());
+ UaFingerprint* matched_fp = nullptr;
uint32_t cur_fpid = 0, part_num = 0;
for (auto& fp : matched_parts)
{
if ( part_num == fp->part_num )
{
- if ( ++part_num == fp->total_parts )
- return fp;
+ if ( ++part_num == fp->total_parts and
+ ( !matched_fp or matched_fp->user_agent.size() < fp->user_agent.size() ) )
+ matched_fp = fp;
}
}
- return nullptr;
+ return matched_fp;
}
void UaFpProcessor::match_mpse(const char* host, const char* uagent, const UaFingerprint*& osfp,