aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-rsvp.c
diff options
context:
space:
mode:
authorJaap Keuter <jaap.keuter@xs4all.nl>2019-04-25 00:08:35 +0200
committerAlexis La Goutte <alexis.lagoutte@gmail.com>2019-04-25 05:15:30 +0000
commit504da93d16784500de996f3b2489b188d0d4eeeb (patch)
tree2b7d42e1557f8be83ae1a48398f6072570eb6ef9 /epan/dissectors/packet-rsvp.c
parent8fbbb0c5fce35f13d90c8930ddf4a1aa897a6e10 (diff)
RSVP: allow full range of RRO type values
Even though the three route subobjects type values overlap (mostly), the range for RRO subobjects is not limited by an l-bit. For regular type values this makes no difference, there is a difference for the private subobjecs of an RRO. With the restriction on type value in the code the private subobjects of RRO could never be reached. Removing the type value limitation for RRO solves this. While at it remove the superfluous rsvp class check for these high type values. Change-Id: I63941085919902ab74f4b4b7ea74b2d362512da6 Reviewed-on: https://code.wireshark.org/review/32969 Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-rsvp.c')
-rw-r--r--epan/dissectors/packet-rsvp.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/epan/dissectors/packet-rsvp.c b/epan/dissectors/packet-rsvp.c
index f957523c18..1993135c9c 100644
--- a/epan/dissectors/packet-rsvp.c
+++ b/epan/dissectors/packet-rsvp.c
@@ -4971,7 +4971,10 @@ dissect_rsvp_ro_subobjects(proto_tree *ti, packet_info* pinfo, proto_tree *rsvp_
/* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ */
for (i=1, l = 0; l < obj_length - 4; i++) {
- type = tvb_get_guint8(tvb, offset + l) & 0x7f;
+ type = tvb_get_guint8(tvb, offset + l);
+ if ((rsvp_class == RSVP_CLASS_EXPLICIT_ROUTE) ||
+ (rsvp_class == RSVP_CLASS_EXCLUDE_ROUTE))
+ type &= 0x7f;
lbit = tvb_get_guint8(tvb, offset + l) & 0x80;
dbit = tvb_get_guint8(tvb, offset + l + 2) & 0x80;
switch(type) {
@@ -5281,11 +5284,6 @@ dissect_rsvp_ro_subobjects(proto_tree *ti, packet_info* pinfo, proto_tree *rsvp_
* Private Use (see RFC 3936, Section 2.3.1) in case of
* RECORD_ROUTE (aka RRO).
*/
- if (rsvp_class == RSVP_CLASS_EXPLICIT_ROUTE)
- goto defaultsub;
- else
- goto privatesub;
- break;
privatesub: /* Private subobject */
/*