SOME/IP: Wrong dissection of parameters after Array
Summary
SOME/IP payload with multiple parameters include Array is dissected wrongly. Parameter after Array is started from unexpected offset.
Steps to reproduce
-
Unzip someip.zip to a directory for personal profile. (e.g.
~/.config/wireshark/profiles/
-
Launch Wireshark(3.2.x) and select profile "someip".
-
See SOME/IP Payload.
What is the current bug behavior?
Struct parameter after array have three parameters as prop1, prop2 and prop3 but only prop1 is displayed and its value is wrong.
Payload
param_array
MyArray [uin8]: 3
MyArray [uin8]: 4
param_struct [MyStruct]
prop1 [uint8]: 7
What is the expected correct behavior?
Expected is Payload displays as following
Payload
param_array
MyArray [uin8]: 3
MyArray [uin8]: 4
param_struct [MyStruct]
prop1 [uint8]: 5
prop2 [uint8]: 6
prop3 [uint8]: 7
Sample capture file
someip_method_with_array_struct.pcap
Relevant logs and/or screenshots
Build information
Version 3.2.7 (v3.2.7-0-gfb6522d8) Copyright 1998-2020 Gerald Combs gerald@wireshark.org and contributors. License GPLv2+: GNU GPL version 2 or later https://www.gnu.org/licenses/gpl-2.0.html This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiled (64-bit) with Qt 5.12.6, with libpcap, without POSIX capabilities, with GLib 2.37.6, with zlib 1.2.11, with SMI 0.4.8, with c-ares 1.15.0, with Lua 5.2.4, with GnuTLS 3.4.17, with Gcrypt 1.8.5, with MIT Kerberos, with MaxMind DB resolver, with nghttp2 1.39.2, with brotli, with LZ4, with Zstandard, with Snappy, with libxml2 2.9.9, with QtMultimedia, with automatic updates using Sparkle, with SpeexDSP (using system library), with SBC, with SpanDSP, with bcg729. Running on Mac OS X 10.15.7, build 19H2 (Darwin 19.6.0), with Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz (with SSE4.2), with 32768 MB of physical memory, with locale C, with dark display mode, with HiDPI, with libpcap version 1.9.1, with GnuTLS 3.4.17, with Gcrypt 1.8.5, with brotli 1.0.7, with zlib 1.2.11, binary plugins supported (19 loaded). Built using clang 4.2.1 Compatible Apple LLVM 11.0.0 (clang-1100.0.33.16). Wireshark is Open Source Software released under the GNU General Public License. Check the man page and https://www.wireshark.org for more information.