aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-usb-masstorage.c
diff options
context:
space:
mode:
authorPascal Quantin <pascal.quantin@gmail.com>2018-01-23 10:02:02 +0100
committerAnders Broman <a.broman58@gmail.com>2018-01-23 12:16:09 +0000
commit5d5482e2e6504a04c092341aa60eb9d0008cce8c (patch)
treefd8b252835f086784c7b59a6943b3926c7dfcc7a /epan/dissectors/packet-usb-masstorage.c
parentc2daa6bc73148aaa2ae2eb3f762f2d2f39a0f491 (diff)
USBMS: fix endianness of GET MAX LUN and RESET
While we are at it, let's add the protocol item to allow filtering on protocol. Bug: 14360 Change-Id: I4973a6e657dccd71af4f798584cc118b75bedd20 Reviewed-on: https://code.wireshark.org/review/25425 Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com> Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com> Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-usb-masstorage.c')
-rw-r--r--epan/dissectors/packet-usb-masstorage.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/epan/dissectors/packet-usb-masstorage.c b/epan/dissectors/packet-usb-masstorage.c
index 9aa8118ac8..8785166277 100644
--- a/epan/dissectors/packet-usb-masstorage.c
+++ b/epan/dissectors/packet-usb-masstorage.c
@@ -71,13 +71,13 @@ static void
dissect_usb_ms_reset(packet_info *pinfo _U_, proto_tree *tree, tvbuff_t *tvb, int offset, gboolean is_request, usb_trans_info_t *usb_trans_info _U_, usb_conv_info_t *usb_conv_info _U_)
{
if(is_request){
- proto_tree_add_item(tree, hf_usb_ms_value, tvb, offset, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_usb_ms_value, tvb, offset, 2, ENC_LITTLE_ENDIAN);
offset += 2;
- proto_tree_add_item(tree, hf_usb_ms_index, tvb, offset, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_usb_ms_index, tvb, offset, 2, ENC_LITTLE_ENDIAN);
offset += 2;
- proto_tree_add_item(tree, hf_usb_ms_length, tvb, offset, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_usb_ms_length, tvb, offset, 2, ENC_LITTLE_ENDIAN);
/*offset += 2;*/
} else {
/* no data in reset response */
@@ -88,17 +88,17 @@ static void
dissect_usb_ms_get_max_lun(packet_info *pinfo _U_, proto_tree *tree, tvbuff_t *tvb, int offset, gboolean is_request, usb_trans_info_t *usb_trans_info _U_, usb_conv_info_t *usb_conv_info _U_)
{
if(is_request){
- proto_tree_add_item(tree, hf_usb_ms_value, tvb, offset, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_usb_ms_value, tvb, offset, 2, ENC_LITTLE_ENDIAN);
offset += 2;
- proto_tree_add_item(tree, hf_usb_ms_index, tvb, offset, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_usb_ms_index, tvb, offset, 2, ENC_LITTLE_ENDIAN);
offset += 2;
- proto_tree_add_item(tree, hf_usb_ms_length, tvb, offset, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(tree, hf_usb_ms_length, tvb, offset, 2, ENC_LITTLE_ENDIAN);
/*offset += 2;*/
} else {
- proto_tree_add_item(tree, hf_usb_ms_maxlun, tvb, offset, 1, ENC_BIG_ENDIAN);
- offset++;
+ proto_tree_add_item(tree, hf_usb_ms_maxlun, tvb, offset, 1, ENC_LITTLE_ENDIAN);
+ /*offset++;*/
}
}
@@ -127,7 +127,7 @@ static const value_string setup_request_names_vals[] = {
* and 0 othervise.
*/
static gint
-dissect_usb_ms_control(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
+dissect_usb_ms_control(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void *data)
{
gboolean is_request;
usb_conv_info_t *usb_conv_info;
@@ -135,6 +135,8 @@ dissect_usb_ms_control(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
int offset=0;
usb_setup_dissector dissector = NULL;
const usb_setup_dissector_table_t *tmp;
+ proto_tree *tree;
+ proto_item *ti;
/* Reject the packet if data or usb_trans_info are NULL */
if (data == NULL || ((usb_conv_info_t *)data)->usb_trans_info == NULL)
@@ -159,6 +161,8 @@ dissect_usb_ms_control(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
}
col_set_str(pinfo->cinfo, COL_PROTOCOL, "USBMS");
+ ti = proto_tree_add_protocol_format(parent_tree, proto_usb_ms, tvb, 0, -1, "USB Mass Storage");
+ tree = proto_item_add_subtree(ti, ett_usb_ms);
col_add_fstr(pinfo->cinfo, COL_INFO, "%s %s",
val_to_str(usb_trans_info->setup.request, setup_request_names_vals, "Unknown type %x"),