aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--epan/dissectors/packet-iscsi.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/epan/dissectors/packet-iscsi.c b/epan/dissectors/packet-iscsi.c
index 878e856918..4577170f5b 100644
--- a/epan/dissectors/packet-iscsi.c
+++ b/epan/dissectors/packet-iscsi.c
@@ -2096,9 +2096,11 @@ dissect_iscsi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gboolean chec
if(tvb_get_ntoh48(tvb, offset+10)){
return 0;
}
- /* expected data transfer length is never >16MByte ? */
- if(tvb_get_guint8(tvb,offset+20)){
- return 0;
+ /* if expected data transfer length is set, W and/or R have to be set */
+ if(tvb_get_ntohl(tvb,offset+20)){
+ if(!(tvb_get_guint8(tvb, offset+1)&0x60)){
+ return 0;
+ }
}
break;
case ISCSI_OPCODE_SCSI_RESPONSE: