aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2001-10-08 17:42:18 +0000
committerGuy Harris <guy@alum.mit.edu>2001-10-08 17:42:18 +0000
commit7ea5330b241a0a4f6034a1261a322418b2f09fe6 (patch)
tree72af4a6485ba8507e620cb0f68505a6f9cfb7d75
parent971ceec9d233e9e59f9cf0c84c81e7794b7770a3 (diff)
As UCP is atop TCP, its dissector isn't called unless there's at least
one byte in the tvbuff being handed to it, so the check I added for the existence of that byte is unnecessary. svn path=/trunk/; revision=4011
-rw-r--r--packet-ucp.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/packet-ucp.c b/packet-ucp.c
index d99f6a161c..6a841fbd29 100644
--- a/packet-ucp.c
+++ b/packet-ucp.c
@@ -2,7 +2,7 @@
* Routines for Universal Computer Protocol dissection
* Copyright 2001, Tom Uijldert <tom.uijldert@cmg.nl>
*
- * $Id: packet-ucp.c,v 1.2 2001/10/08 17:37:52 guy Exp $
+ * $Id: packet-ucp.c,v 1.3 2001/10/08 17:42:18 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -625,10 +625,6 @@ static const value_string vals_xser_service[] = {
* \retval UCP_SHORTENED Packet may be there, but not complete
* \retval UCP_MALFORMED Hmmmm, not UCP after all...
* \retval UCP_INV_CHK Nice packet, but checksum doesn't add up...
- *
- * Note that this will not recognize any frames as UCP frames if the
- * capture was made with a snapshot length shorter than the maximum
- * frame length, as it checksums the entire packet.
*/
static int
check_ucp(tvbuff_t *tvb, int *endpkt)
@@ -638,9 +634,6 @@ check_ucp(tvbuff_t *tvb, int *endpkt)
int pkt_check, tmp;
int length;
- if (!tvb_offset_exists(tvb, 0) || tvb_get_guint8(tvb, 0) != UCP_STX)
- return UCP_MALFORMED;
-
length = tvb_find_guint8(tvb, offset, -1, UCP_ETX);
if (length == -1) {
*endpkt = tvb_reported_length_remaining(tvb, offset);
@@ -1542,6 +1535,11 @@ dissect_ucp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
proto_tree *ucp_tree;
tvbuff_t *tmp_tvb;
+ /* This runs atop TCP, so we are guaranteed that there is at least one
+ byte in the tvbuff. */
+ if (tvb_get_guint8(tvb, 0) != UCP_STX)
+ return FALSE;
+
result = check_ucp(tvb, &endpkt);
if (result == UCP_MALFORMED)