diff --git a/CHANGES b/CHANGES index 1c7f0e1a3a..2d4698814f 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,9 @@ +4.2.0-dev.106 | 2021-09-03 18:10:31 +0000 + + * Code modernization: use ranged-based for loop where possible (Vlad Grigorescu) + + * Improve performance of asn1_oid_to_val string conversions. (Vlad Grigorescu) + 4.2.0-dev.103 | 2021-09-03 18:08:57 +0000 * Disable the scripts.base.frameworks.logging.sqlite.simultaneous-writes test under TSan (Tim Wojtulewicz, Corelight) diff --git a/VERSION b/VERSION index dc4b6a035e..c73b9c923f 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -4.2.0-dev.103 +4.2.0-dev.106 diff --git a/src/analyzer/protocol/asn1/asn1.pac b/src/analyzer/protocol/asn1/asn1.pac index 35a27e88ba..c949c97972 100644 --- a/src/analyzer/protocol/asn1/asn1.pac +++ b/src/analyzer/protocol/asn1/asn1.pac @@ -161,9 +161,8 @@ zeek::StringValPtr asn1_oid_to_val(const ASN1Encoding* oid) // Underflow. return zeek::val_mgr->EmptyString(); - for ( size_t i = 0; i < subidentifiers.size(); ++i ) + for ( auto subidentifier : subidentifiers ) { - subidentifier = subidentifiers[i]; uint64 value = 0; for ( size_t j = 0; j < subidentifier.size(); ++j ) @@ -183,17 +182,13 @@ zeek::StringValPtr asn1_oid_to_val(const ASN1Encoding* oid) if ( i > 0 ) { - rval += "."; - snprintf(tmp, sizeof(tmp), "%" PRIu64, subidentifier_values[i]); + snprintf(tmp, sizeof(tmp), ".%" PRIu64, subidentifier_values[i]); rval += tmp; } else { std::div_t result = std::div(subidentifier_values[i], 40); - snprintf(tmp, sizeof(tmp), "%d", result.quot); - rval += tmp; - rval += "."; - snprintf(tmp, sizeof(tmp), "%d", result.rem); + snprintf(tmp, sizeof(tmp), "%d.%d", result.quot, result.rem); rval += tmp; } }