diff options
author | Pascal Quantin <pascal.quantin@gmail.com> | 2018-01-23 10:02:02 +0100 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2018-01-23 12:16:09 +0000 |
commit | 5d5482e2e6504a04c092341aa60eb9d0008cce8c (patch) | |
tree | fd8b252835f086784c7b59a6943b3926c7dfcc7a /epan/dissectors/packet-usb-masstorage.c | |
parent | c2daa6bc73148aaa2ae2eb3f762f2d2f39a0f491 (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.c | 22 |
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"), |