diff options
author | Pascal Quantin <pascal.quantin@gmail.com> | 2014-03-25 22:51:05 +0100 |
---|---|---|
committer | Pascal Quantin <pascal.quantin@gmail.com> | 2014-03-25 22:04:23 +0000 |
commit | 38b5efd5cf9884d1274a5e9b6cdaa404c9a1d509 (patch) | |
tree | e7ac460506bf0a3cca6a89797f87e61da9f80d0d /epan/dissectors/packet-usb-com.c | |
parent | 843054ce963f000c023c0ba8aab6d283f92b351f (diff) |
MBIM: fix dissection of control packets when capturing with usbmon
Change-Id: Ie20fcb8d393a85d47ba78f6cb70de77fedda2587
Reviewed-on: https://code.wireshark.org/review/829
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-usb-com.c')
-rw-r--r-- | epan/dissectors/packet-usb-com.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/epan/dissectors/packet-usb-com.c b/epan/dissectors/packet-usb-com.c index c5f34ea7e6..b7e1beb837 100644 --- a/epan/dissectors/packet-usb-com.c +++ b/epan/dissectors/packet-usb-com.c @@ -464,9 +464,15 @@ dissect_usb_com_control(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi switch (usb_trans_info->setup.request) { case SEND_ENCAPSULATED_COMMAND: + if ((usb_conv_info->interfaceSubclass == COM_SUBCLASS_MBIM) && + (usb_trans_info->header_info & USB_HEADER_IS_LINUX)) { + offset = call_dissector_only(mbim_control_handle, tvb, pinfo, tree, usb_conv_info); + break; + } + /* FALLTHROUGH */ case GET_ENCAPSULATED_RESPONSE: - if (!is_request && (usb_conv_info->interfaceSubclass == COM_SUBCLASS_MBIM)) { - offset = call_dissector_only(mbim_control_handle, tvb, pinfo, tree, NULL); + if ((usb_conv_info->interfaceSubclass == COM_SUBCLASS_MBIM) && !is_request) { + offset = call_dissector_only(mbim_control_handle, tvb, pinfo, tree, usb_conv_info); } break; case GET_NTB_PARAMETERS: |