I don't understand what the code is doing and why.Code:if {![regexp -nocase {^[0-9a-f]+$} $f} { binary scan $f H* f }
It's trying to determine if the string is binary or hex. The next line converts to hex if required. Due to the way the class currently works, the aulEventToRecordInfo field can be held in either a binary or hex representation (this really needs fixing).
The bug here is that regexp considers a null byte to be the string terminator so for Revenge it's checking 0x45 which happens to be a valid hex character.
@G4DDS - can you run the diagnostic again to update the file and try again?
Here's the new version:
Code:
if {$field in $::binaryfields && [string bytelength $f] > 1} {
- if {![regexp -nocase {^[0-9a-f]+$} $f} {
+ if {[string length $f] != [string bytelength $f] ||
+ ![regexp -nocase {^[0-9a-f]+$} $f} {
binary scan $f H* f
}