diff options
author | Jaap Keuter <jaap.keuter@xs4all.nl> | 2019-04-25 00:08:35 +0200 |
---|---|---|
committer | Alexis La Goutte <alexis.lagoutte@gmail.com> | 2019-04-25 05:15:30 +0000 |
commit | 504da93d16784500de996f3b2489b188d0d4eeeb (patch) | |
tree | 2b7d42e1557f8be83ae1a48398f6072570eb6ef9 /epan/dissectors/packet-rsvp.c | |
parent | 8fbbb0c5fce35f13d90c8930ddf4a1aa897a6e10 (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.c | 10 |
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 */ /* |