aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-usb-com.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/packet-usb-com.c')
-rw-r--r--epan/dissectors/packet-usb-com.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/epan/dissectors/packet-usb-com.c b/epan/dissectors/packet-usb-com.c
index 62492fac9a..d02ad54d99 100644
--- a/epan/dissectors/packet-usb-com.c
+++ b/epan/dissectors/packet-usb-com.c
@@ -78,6 +78,7 @@ dissect_usb_com_descriptor(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
usb_conv_info_t *usb_conv_info;
proto_tree *subtree;
proto_item *ti;
+ gint offset = 0;
usb_conv_info = (usb_conv_info_t *)pinfo->usb_conv_info;
@@ -94,7 +95,7 @@ dissect_usb_com_descriptor(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
{
case COM_SUBCLASS_MBIM:
if (mbim_handle) {
- return call_dissector(mbim_handle, tvb, pinfo, tree);
+ offset = call_dissector_only(mbim_handle, tvb, pinfo, tree, NULL);
}
break;
default:
@@ -102,7 +103,9 @@ dissect_usb_com_descriptor(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
}
}
- proto_tree_add_item(subtree, hf_usb_com_payload, tvb, 0, -1, ENC_NA);
+ if (tvb_reported_length_remaining(tvb, offset) != 0) {
+ proto_tree_add_item(subtree, hf_usb_com_payload, tvb, offset, -1, ENC_NA);
+ }
return tvb_length(tvb);
}