diff options
author | Ronnie Sahlberg <ronnie_sahlberg@ozemail.com.au> | 2006-11-05 07:59:20 +0000 |
---|---|---|
committer | Ronnie Sahlberg <ronnie_sahlberg@ozemail.com.au> | 2006-11-05 07:59:20 +0000 |
commit | ebf95252d06838a59c6711b305a8b5e277e97f0a (patch) | |
tree | 151a55b7199324669772d4e244344e730e5b06f4 /epan/dissectors/packet-scsi-osd.c | |
parent | 98eb8f4a5c6163266a029aa26c41b65610d20192 (diff) |
dissect the Get Attributes List Offset according to the really weird encoding in 4.12.5
svn path=/trunk/; revision=19807
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); |