diff options
author | sahlberg <sahlberg@f5534014-38df-0310-8fa8-9805f1628bb7> | 2006-11-05 07:59:20 +0000 |
---|---|---|
committer | sahlberg <sahlberg@f5534014-38df-0310-8fa8-9805f1628bb7> | 2006-11-05 07:59:20 +0000 |
commit | 5966cb40b2ad5d5267d034b1ce73b1018c0feb74 (patch) | |
tree | 151a55b7199324669772d4e244344e730e5b06f4 /epan/dissectors/packet-scsi-osd.c | |
parent | cdf2f8efc21a87fc00466e9f1f2e01103e0ccddf (diff) |
dissect the Get Attributes List Offset according to the really weird encoding in 4.12.5
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@19807 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/dissectors/packet-scsi-osd.c')
-rw-r--r-- | epan/dissectors/packet-scsi-osd.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/epan/dissectors/packet-scsi-osd.c b/epan/dissectors/packet-scsi-osd.c index 6a90371943..4f395cdfd1 100644 --- a/epan/dissectors/packet-scsi-osd.c +++ b/epan/dissectors/packet-scsi-osd.c @@ -125,6 +125,9 @@ static gint ett_osd_permission_bitmask = -1; static gint ett_osd_security_parameters = -1; +#define PAGE_NUMBER_PARTITION 0x30000000 +#define PAGE_NUMBER_COLLECTION 0x60000000 +#define PAGE_NUMBER_ROOT 0x90000000 /* There will be one such structure create for each conversation ontop of which * there is an OSD session @@ -291,8 +294,11 @@ dissect_osd_attribute_parameters(tvbuff_t *tvb, int offset, proto_tree *parent_t extra_data->get_list_length=tvb_get_ntohl(tvb, offset); offset+=4; - proto_tree_add_item(tree, hf_scsi_osd_get_attributes_list_offset, tvb, offset, 4, 0); + /* 4.12.5 */ extra_data->get_list_offset=tvb_get_ntohl(tvb, offset); + extra_data->get_list_offset=(extra_data->get_list_offset&0x0fffffff)<<((extra_data->get_list_offset>>28)&0x0f); + extra_data->get_list_offset<<=8; + proto_tree_add_uint(tree, hf_scsi_osd_get_attributes_list_offset, tvb, offset, 4, extra_data->get_list_offset); offset+=4; proto_tree_add_item(tree, hf_scsi_osd_get_attributes_allocation_length, tvb, offset, 4, 0); |