Wrong number of bits skipped while decoding an empty UTF8String on UPER packet
If a PER packet contains an empty UTF8 string, the offset is skipped by 9 bits instead of 8, resulting on wrong decoding of subsequent fields.
Steps to reproduce
Dissect a packet containing an empty (null-termination char only) UTF8 string.
What is the current bug behavior?
What is the expected correct behavior?
(What you should see instead)
Sample capture file
Relevant logs and/or screenshots
On dissect_per_restricted_character_string_sorted, the string length is checked and one bit is skipped in case it is 0 to point to the next element. However, the offset is already advanced by 8 bits from the calling dissect_per_length_determinant function. On my private build, saving the offset prior to calling dissect_per_length_determinant and checking if any bits were skipped (instead of the string length) has solved the issue.
(In Wireshark, select Help->About Wireshark from the main menu and use the button "Copy To Clipboard". Please paste the complete output here. Or from the command line, run `tshark -v` or `wireshark -v`)
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information