aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-smb-direct.c
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2014-01-31 16:20:12 +0100
committerPascal Quantin <pascal.quantin@gmail.com>2014-02-26 09:09:26 +0000
commitf012f1d08761ff6227629e24e03e040799901742 (patch)
tree3a687fd2c34ba42e011fcce83681ee5755463689 /epan/dissectors/packet-smb-direct.c
parent6efd2c732a1e5203d29d50f19c32b666c1ebdc6c (diff)
packet-smb-direct: only handle RDMA_SEND_* messages
Change-Id: I08fa1092e2722c108bf6f847f8fc230f131e584b Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-on: https://code.wireshark.org/review/356 Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-smb-direct.c')
-rw-r--r--epan/dissectors/packet-smb-direct.c18
1 files changed, 17 insertions, 1 deletions
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 <glib.h>
#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;