MMRP dissector bug
First of all, sorry if I miss something, this is my first bug report.
I think I already found the line of code which is causing the issue.
I discovered a bug in the MMRP dissector.
Messages of type "Service Requirements" are not parsed correctly.
I searched the database for related topics and found #5900 (closed) , which looks like the introduction of the dissector.
The attachment "diff-mmrp.diff: Patch v2" of this topic shows in line 376 that the wrong offset value is used for this attribute type. The "MMRP_MAC_THREE_PACKED_OFFSET" should be a "MMRP_SERVICE_THREE_PACKED_OFFSET".
I noticed the also attached "sampel" files of the other topic do not include messages of this type. So I will attach a file with 8 frames which each include a single MMRP message, containing a single attribute. The first four messages are not filled with zeros to the minimum ethernet payload size. Here my current version of wireshark shows the malformed packet warning. The last four messages are the same, but from the receiving side and therefore filled with zeros. Here wireshark does not show the malformed warning. Instead it decodes one of the trailing zeros as a threepackedevent.
Additionally I would like to mention the "First Value" field. It does not show the content as it is for the MSRP and MVRP dissectors. It would be nice if this could be fixed too.
Steps to reproduce
What is the current bug behavior?
Frame 1 and 3 are marked as malformed, which they are not.
Frame 7 decodes a trailing zero as attribute event "New", which is wrong.
What is the expected correct behavior?
All frames should be valid and all attribute events (if present) should be decoded as "JoinMt".
Sample capture file
3.2.7 (Git commit fb6522d8)
Compiled (64-bit) with Qt 5.15.1, with libpcap, with POSIX capabilities (Linux), with libnl 3, with GLib 2.66.0, with zlib 1.2.11, without SMI, with c-ares 1.16.1, with Lua 5.2.4, with GnuTLS 3.6.15 and PKCS #11 (closed) support, with Gcrypt 1.8.6, with MIT Kerberos, with MaxMind DB resolver, with nghttp2 1.41.0, with brotli, with LZ4, with Zstandard, with Snappy, with libxml2 2.9.10, with QtMultimedia, without automatic updates, with SpeexDSP (using system library), with SBC, with SpanDSP, with bcg729.
Running on Linux 5.9.3-arch1-1, with Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz (with SSE4.2), with 31827 MB of physical memory, with locale LC_CTYPE=en_US.UTF-8, LC_NUMERIC=en_US.UTF-8, LC_TIME=de_DE.UTF-8, LC_COLLATE=C, LC_MONETARY=en_US.UTF-8, LC_MESSAGES=en_US.UTF-8, LC_PAPER=en_US.UTF-8, LC_NAME=en_US.UTF-8, LC_ADDRESS=en_US.UTF-8, LC_TELEPHONE=en_US.UTF-8, LC_MEASUREMENT=en_US.UTF-8, LC_IDENTIFICATION=en_US.UTF-8, with light display mode, without HiDPI, with libpcap version 1.9.1 (with TPACKET_V3), with GnuTLS 3.6.15, with Gcrypt 1.8.7, with brotli 1.0.9, with zlib 1.2.11, binary plugins supported (19 loaded).
Built using gcc 10.2.0.