diff options
author | sahlberg <sahlberg@f5534014-38df-0310-8fa8-9805f1628bb7> | 2005-05-29 02:55:12 +0000 |
---|---|---|
committer | sahlberg <sahlberg@f5534014-38df-0310-8fa8-9805f1628bb7> | 2005-05-29 02:55:12 +0000 |
commit | 29a30cb8e86b3e98152a24c99c35073da5b7d8c6 (patch) | |
tree | cd7d07dba1dd90e047810555e155668fd5058425 /epan/dissectors/packet-fcp.c | |
parent | e8b0a06f58fd024b5869cfccf1a64f38f5979dbb (diff) |
make all callers of dissect_scsi_cdb() first create a new subset tvb
change the signature for dissect_scsi_cdb since we no longer need to pass offset over.
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@14472 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/dissectors/packet-fcp.c')
-rw-r--r-- | epan/dissectors/packet-fcp.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/epan/dissectors/packet-fcp.c b/epan/dissectors/packet-fcp.c index 6c959eb9e0..4c4a80a716 100644 --- a/epan/dissectors/packet-fcp.c +++ b/epan/dissectors/packet-fcp.c @@ -240,6 +240,8 @@ dissect_fcp_cmnd (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) fcp_conv_key_t ckey, *req_key; scsi_task_id_t task_key; guint16 lun=0xffff; + tvbuff_t *cdb_tvb; + int tvb_len, tvb_rlen; /* Determine the length of the FCP part of the packet */ flags = tvb_get_guint8 (tvb, offset+10); @@ -348,8 +350,16 @@ dissect_fcp_cmnd (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) proto_tree_add_item (fcp_tree, hf_fcp_addlcdblen, tvb, offset+11, 1, 0); proto_tree_add_item (fcp_tree, hf_fcp_rddata, tvb, offset+11, 1, 0); proto_tree_add_item (fcp_tree, hf_fcp_wrdata, tvb, offset+11, 1, 0); - dissect_scsi_cdb (tvb, pinfo, tree, offset+12, 16+add_len, - SCSI_DEV_UNKNOWN, lun); + + tvb_len=tvb_length_remaining(tvb, offset+12); + if(tvb_len>(16+add_len)) + tvb_len=16+add_len; + tvb_rlen=tvb_reported_length_remaining(tvb, offset+12); + if(tvb_rlen>(16+add_len)) + tvb_rlen=16+add_len; + cdb_tvb=tvb_new_subset(tvb, offset+12, tvb_len, tvb_rlen); + dissect_scsi_cdb (cdb_tvb, pinfo, tree, SCSI_DEV_UNKNOWN, lun); + proto_tree_add_item (fcp_tree, hf_fcp_dl, tvb, offset+12+16+add_len, 4, 0); } |