aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-ndmp.c
diff options
context:
space:
mode:
authorRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2005-05-29 02:55:12 +0000
committerRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2005-05-29 02:55:12 +0000
commite66ff913ffb5801187e0832f8d5765c0227e3c51 (patch)
treecd7d07dba1dd90e047810555e155668fd5058425 /epan/dissectors/packet-ndmp.c
parentfc9688991f6be8b81795d10c1fd12e4009a7821f (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. svn path=/trunk/; revision=14472
Diffstat (limited to 'epan/dissectors/packet-ndmp.c')
-rw-r--r--epan/dissectors/packet-ndmp.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/epan/dissectors/packet-ndmp.c b/epan/dissectors/packet-ndmp.c
index 7e8b9dcf39..97041a2c20 100644
--- a/epan/dissectors/packet-ndmp.c
+++ b/epan/dissectors/packet-ndmp.c
@@ -1106,7 +1106,17 @@ dissect_execute_cdb_cdb(tvbuff_t *tvb, int offset, packet_info *pinfo,
offset += 4;
if (cdb_len != 0) {
- dissect_scsi_cdb(tvb, pinfo, tree, offset, cdb_len, devtype, 0xffff);
+ tvbuff_t *cdb_tvb;
+ int tvb_len, tvb_rlen;
+
+ tvb_len=tvb_length_remaining(tvb, offset);
+ if(tvb_len>16)
+ tvb_len=16;
+ tvb_rlen=tvb_reported_length_remaining(tvb, offset);
+ if(tvb_rlen>16)
+ tvb_rlen=16;
+ cdb_tvb=tvb_new_subset(tvb, offset, tvb_len, tvb_rlen);
+ dissect_scsi_cdb(cdb_tvb, pinfo, tree, devtype, 0xffff);
offset += cdb_len_full;
}