diff --git a/CHANGES b/CHANGES index d77d794a0e..4417bb235e 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,9 @@ +6.1.0-rc1.1 | 2023-10-17 09:28:05 -0700 + + * performance improvements for the LDAP ASN.1 analyzer (Paul Dokas, Corelight) + + (cherry picked from commit a17923da505efad333db28141b25d835f8c90b54) + 6.1.0-rc1 | 2023-10-13 11:25:59 -0700 * Add missing NEWS entries for upcoming 6.1 release, reformat slightly (Tim Wojtulewicz, Corelight) diff --git a/VERSION b/VERSION index 425c7aa7d6..07514b9804 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -6.1.0-rc1 +6.1.0-rc1.1 diff --git a/src/analyzer/protocol/ldap/asn1.spicy b/src/analyzer/protocol/ldap/asn1.spicy index 001c131e25..989ad08ebe 100644 --- a/src/analyzer/protocol/ldap/asn1.spicy +++ b/src/analyzer/protocol/ldap/asn1.spicy @@ -167,28 +167,29 @@ type ASN1ObjectIdentifierNibble = unit { } &convert=self.data; type ASN1ObjectIdentifier = unit(len: uint64) { - var oid: vector; + var oidbytes: bytes; var temp: uint64; var oidstring: string; : uint8 if ( len >= 1 ) { self.temp = $$ / 40; - self.oid.push_back( self.temp ); - self.oidstring = "%d" % (self.temp); + self.oidbytes += ("%d" % (self.temp)).encode(); self.temp = $$ % 40; - self.oid.push_back( self.temp ); - self.oidstring = self.oidstring + ".%d" % (self.temp); + self.oidbytes += (".%d" % (self.temp)).encode(); self.temp = 0; } sublist: ASN1ObjectIdentifierNibble[len - 1] foreach { self.temp = ( self.temp<<7 ) | $$.num; if ( $$.more != 1 ) { - self.oid.push_back(self.temp); - self.oidstring = self.oidstring + ".%d" % (self.temp); + self.oidbytes += (".%d" % (self.temp)).encode(); self.temp = 0; } } + + on %done { + self.oidstring = self.oidbytes.decode(); + } };