diff options
author | Martin Kaiser <wireshark@kaiser.cx> | 2012-10-23 21:02:28 +0000 |
---|---|---|
committer | Martin Kaiser <wireshark@kaiser.cx> | 2012-10-23 21:02:28 +0000 |
commit | 31f7fee054c96c66b5e33fdbbde28fa9330cefe3 (patch) | |
tree | f447495b3152f18870e4efb07aefdf675804e0d8 /epan/dissectors/packet-usb.c | |
parent | f05cc88f6fab351a7b88a02aeae9d074f04f9b73 (diff) |
From Steve Magnani
fix USB descriptor parsing
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7909
svn path=/trunk/; revision=45742
Diffstat (limited to 'epan/dissectors/packet-usb.c')
-rw-r--r-- | epan/dissectors/packet-usb.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/epan/dissectors/packet-usb.c b/epan/dissectors/packet-usb.c index d1ae5767b8..8121dcb545 100644 --- a/epan/dissectors/packet-usb.c +++ b/epan/dissectors/packet-usb.c @@ -1101,8 +1101,9 @@ dissect_usb_interface_descriptor(packet_info *pinfo, proto_tree *parent_tree, tv if(item){ proto_item_set_len(item, len); } - if (offset != old_offset + len) { - /* unknown records */ + if (offset < old_offset+len) { + /* skip unknown records */ + offset = old_offset + len; } return offset; @@ -1225,8 +1226,9 @@ dissect_usb_endpoint_descriptor(packet_info *pinfo, proto_tree *parent_tree, tvb if(item){ proto_item_set_len(item, len); } - if (offset != old_offset + len) { - /* unknown records */ + if (offset < old_offset+len) { + /* skip unknown records */ + offset = old_offset + len; } return offset; |