aboutsummaryrefslogtreecommitdiffstats
path: root/epan/conversation.c
diff options
context:
space:
mode:
authorguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>2000-11-18 06:51:42 +0000
committerguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>2000-11-18 06:51:42 +0000
commitc5ff3724cc3f23fc3bbdbfe15e5bf22bc4cc9047 (patch)
treee8ccdd5c9c408f7cc5f7fca4fcc0e0b883d3e4b9 /epan/conversation.c
parent9470410591b5fd91e8d045aca61a3ab90c986920 (diff)
Don't attempt to call the dissector for a conversation if the
conversation doesn't have a dissector. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@2655 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/conversation.c')
-rw-r--r--epan/conversation.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/epan/conversation.c b/epan/conversation.c
index a1e43d153f..9757653e50 100644
--- a/epan/conversation.c
+++ b/epan/conversation.c
@@ -1,7 +1,7 @@
/* conversation.c
* Routines for building lists of packets that are part of a "conversation"
*
- * $Id: conversation.c,v 1.3 2000/10/21 09:54:12 guy Exp $
+ * $Id: conversation.c,v 1.4 2000/11/18 06:51:42 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -765,13 +765,26 @@ try_conversation_dissector(address *src, address *dst, port_type ptype,
/*
* New dissector calling old dissector; use
* "tvb_compat()" to remap.
+ *
+ * "is_old_dissector" won't be set unless
+ * "dissector.old_d" is set.
*/
tvb_compat(tvb, &pd, &offset);
(*conversation->dissector.old_d)(pd, offset, pinfo->fd,
tree);
- } else
+ } else {
+ /*
+ * Do we have a conversation dissector?
+ */
+ if (conversation->dissector.new_d == NULL) {
+ /*
+ * No, so we can't call it.
+ */
+ return FALSE;
+ }
(*conversation->dissector.new_d)(tvb, pinfo, tree);
- return TRUE;
+ return TRUE;
+ }
}
return FALSE;
}