From f012f1d08761ff6227629e24e03e040799901742 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 31 Jan 2014 16:20:12 +0100 Subject: packet-smb-direct: only handle RDMA_SEND_* messages Change-Id: I08fa1092e2722c108bf6f847f8fc230f131e584b Signed-off-by: Stefan Metzmacher Reviewed-on: https://code.wireshark.org/review/356 Reviewed-by: Pascal Quantin --- epan/dissectors/packet-smb-direct.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'epan/dissectors/packet-smb-direct.c') diff --git a/epan/dissectors/packet-smb-direct.c b/epan/dissectors/packet-smb-direct.c index af8d3a6d81..cd7af8e9e8 100644 --- a/epan/dissectors/packet-smb-direct.c +++ b/epan/dissectors/packet-smb-direct.c @@ -31,6 +31,7 @@ #include #include "packet-windows-common.h" +#include "packet-iwarp-ddp-rdmap.h" static int proto_smb_direct = -1; @@ -358,10 +359,25 @@ is_smb_direct(tvbuff_t *tvb, packet_info *pinfo _U_) static gboolean dissect_smb_direct_iwarp_heur(tvbuff_t *tvb, packet_info *pinfo, - proto_tree *parent_tree, void *data _U_) + proto_tree *parent_tree, void *data) { + struct rdmapinfo *info = (struct rdmapinfo *)data; enum SMB_DIRECT_HDR_TYPE hdr_type; + if (info == NULL) { + return FALSE; + } + + switch (info->opcode) { + case RDMA_SEND: + case RDMA_SEND_INVALIDATE: + case RDMA_SEND_SE: + case RDMA_SEND_SE_INVALIDATE: + break; + default: + return FALSE; + } + hdr_type = is_smb_direct(tvb, pinfo); if (hdr_type == SMB_DIRECT_HDR_UNKNOWN) { return FALSE; -- cgit v1.2.3