ASAM-CMP Plugin: Malformed message, length mismatch if vendor defined data of status messages has odd length
Summary
If the received interface status message contains vendor defined data with a odd byte length (% 2 != 0), the packet is flagged as Malformed message, length mismatch!
The ASAM-CMP specification v1.0.0 (2022/03/31) does not contain wording, that the interface status or configuration message vendor defined data has to be 2 byte aligned.
Steps to reproduce
Send an interface or configuration status message with an odd number of bytes in the vendor defined data
What is the current bug behavior?
Padding is done for:
Configuration Status message: asam_cmp_status_msg_vendor_data_length += (asam_cmp_status_msg_vendor_data_length % 2); /* padding to 16bit */
Interface Status message: asam_cmp_status_msg_vendor_data_length += (asam_cmp_status_msg_vendor_data_length % 2); /* padding to 16bit */
What is the expected correct behavior?
According to specification: No Padding
Sample capture file
Relevant logs and/or screenshots
Build information
Version 4.2.2 (v4.2.2-0-g404592842786).
Compiled (64-bit) using Microsoft Visual Studio 2022 (VC++ 14.37, build 32822),
with GLib 2.78.0, with Qt 6.5.3, with libpcap, with zlib 1.3.0, with PCRE2, with
Lua 5.2.4 (with UfW patches), with GnuTLS 3.8.2 and PKCS #11 support, with
Gcrypt 1.10.2-unknown, with Kerberos (MIT), with MaxMind, with nghttp2 1.57.0,
with nghttp3 1.0.0, with brotli, with LZ4, with Zstandard, with Snappy, with
libxml2 2.11.5, with libsmi 0.5.0, with QtMultimedia, with automatic updates
using WinSparkle 0.8.0, with AirPcap, with Minizip, with binary plugins.
Running on 64-bit Windows 10 (22H2), build 19045, with Intel(R) Core(TM) i5-8500
CPU @ 3.00GHz (with SSE4.2), with 16180 MB of physical memory, with GLib 2.78.0,
with Qt 6.5.3, with Npcap version 1.78, based on libpcap version 1.10.4, with
PCRE2 10.42 2022-12-11, with c-ares 1.19.0, with GnuTLS 3.8.2, with Gcrypt
1.10.2-unknown, with nghttp2 1.57.0, with nghttp3 1.0.0, with brotli 1.0.9, with
LZ4 1.9.3, with Zstandard 1.5.2, without AirPcap, with light display mode,
without HiDPI, with QPA plugin "windows", with LC_TYPE=German_Germany.utf8,
binary plugins supported.