diff --git a/epan/dissectors/packet-mbim.c b/epan/dissectors/packet-mbim.c index bc9fb6e2c2..be1aad207f 100644 --- a/epan/dissectors/packet-mbim.c +++ b/epan/dissectors/packet-mbim.c @@ -3660,6 +3660,7 @@ dissect_mbim_control(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void * if ((usb_trans_info->setup.request == 0x00) && (USB_HEADER_IS_LINUX(usb_trans_info->header_type))) { /* Skip Send Encapsulated Command header */ offset += 7; + tree = proto_tree_get_parent_tree(tree); } } @@ -4943,7 +4944,7 @@ dissect_mbim_decode_as(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void usb_conv_info_t *usb_conv_info; usb_trans_info_t *usb_trans_info; - if (!data) { + if (!data || (tvb_reported_length(tvb) == 0)) { return 0; } diff --git a/epan/dissectors/packet-usb-com.c b/epan/dissectors/packet-usb-com.c index 15dc7c0d1b..e41e1dc7a7 100644 --- a/epan/dissectors/packet-usb-com.c +++ b/epan/dissectors/packet-usb-com.c @@ -463,6 +463,10 @@ dissect_usb_com_control(tvbuff_t *tvb, packet_info *pinfo, proto_tree *setup_tre gint offset = 0; gboolean is_request; + if (tvb_reported_length(tvb) == 0) { + return 0; + } + col_set_str(pinfo->cinfo, COL_PROTOCOL, "USBCOM"); tree = proto_tree_get_parent_tree(setup_tree);