diff options
author | gerald <gerald@f5534014-38df-0310-8fa8-9805f1628bb7> | 2002-06-02 23:55:11 +0000 |
---|---|---|
committer | gerald <gerald@f5534014-38df-0310-8fa8-9805f1628bb7> | 2002-06-02 23:55:11 +0000 |
commit | 3f47d534cfb339577e73ccd97af6d68e5ec27325 (patch) | |
tree | 9fccc7d19dee57715669b6a1a5d675a78562f55a | |
parent | 599cc5fd9613d0215c2aff224e6def7949821c06 (diff) |
Require that the LMP and RSVP message types be greater than 0.
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@5612 f5534014-38df-0310-8fa8-9805f1628bb7
-rw-r--r-- | packet-lmp.c | 5 | ||||
-rw-r--r-- | packet-rsvp.c | 13 |
2 files changed, 13 insertions, 5 deletions
diff --git a/packet-lmp.c b/packet-lmp.c index cd208efc6c..aabe682e95 100644 --- a/packet-lmp.c +++ b/packet-lmp.c @@ -3,7 +3,7 @@ * * (c) Copyright Ashok Narayanan <ashokn@cisco.com> * - * $Id: packet-lmp.c,v 1.7 2002/06/02 21:42:58 gerald Exp $ + * $Id: packet-lmp.c,v 1.8 2002/06/02 23:55:11 gerald Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -828,7 +828,8 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) offset+3, 1, message_type); proto_tree_add_text(lmp_header_tree, tvb, offset+4, 2, "Length: %d bytes", msg_length); - if (LMPF_MSG + message_type <= LMPF_MSG_CHANNEL_STATUS_RESP) { + if (LMPF_MSG + message_type <= LMPF_MSG_CHANNEL_STATUS_RESP && + message_type > 0) { proto_tree_add_boolean_hidden(lmp_header_tree, lmp_filter[LMPF_MSG + message_type], tvb, offset+3, 1, 1); } else { diff --git a/packet-rsvp.c b/packet-rsvp.c index 2e5514f79a..5f6a8ed61c 100644 --- a/packet-rsvp.c +++ b/packet-rsvp.c @@ -3,7 +3,7 @@ * * (c) Copyright Ashok Narayanan <ashokn@cisco.com> * - * $Id: packet-rsvp.c,v 1.65 2002/05/30 08:34:18 guy Exp $ + * $Id: packet-rsvp.c,v 1.66 2002/06/02 23:55:11 gerald Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -74,6 +74,7 @@ #include "packet-rsvp.h" #include "packet-ip.h" +#include "packet-frame.h" static int proto_rsvp = -1; @@ -3590,12 +3591,18 @@ dissect_rsvp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) ver_flags & 0xf); proto_tree_add_uint(rsvp_header_tree, rsvp_filter[RSVPF_MSG], tvb, offset+1, 1, message_type); - if (message_type <= RSVPF_RTEARCONFIRM && + if (RSVPF_MSG + message_type <= RSVPF_RTEARCONFIRM && message_type != RSVPF_JUNK_MSG8 && - message_type != RSVPF_JUNK_MSG9 ) { + message_type != RSVPF_JUNK_MSG9 && + message_type > 0) { proto_tree_add_boolean_hidden(rsvp_header_tree, rsvp_filter[RSVPF_MSG + message_type], tvb, offset+1, 1, 1); + } else { + proto_tree_add_protocol_format(rsvp_header_tree, proto_malformed, tvb, offset+1, 1, + "Invalid message type: %u", message_type); + return; } + cksum = tvb_get_ntohs(tvb, offset+2); if (!pinfo->fragmented && (int) tvb_length(tvb) >= msg_length) { /* The packet isn't part of a fragmented datagram and isn't |