aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexis La Goutte <alexis.lagoutte@gmail.com>2014-08-25 16:02:07 +0200
committerAlexis La Goutte <alexis.lagoutte@gmail.com>2014-08-25 14:07:27 +0000
commitf44e082fa8403023425e27b28cb295f4e40e34e6 (patch)
tree33a88a4b337350b1f05e06c7b4e754e41e112471
parentc697a86f3253d26b31ba7a497ac8e7faa0483a43 (diff)
RPKI RTR: Wrong decoding of RPKI RTR End of Data PDU
The decoding of the End of Data PDU ignores the Serial Number, i.e., the last 32 bit of this PDU. Instead of that the current dissector implementation starts to decode a new RTR PDU. Details of packet format see http://tools.ietf.org/html/rfc6810#section-5.8 Found by Matthias Wählisch Bug: 10411 Change-Id: I8451b5fbda18a034022b97ff442ddb2a2dabed7b Reviewed-on: https://code.wireshark.org/review/3832 Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
-rw-r--r--epan/dissectors/packet-rpki-rtr.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/epan/dissectors/packet-rpki-rtr.c b/epan/dissectors/packet-rpki-rtr.c
index e3c27be8bc..6f0aa3157b 100644
--- a/epan/dissectors/packet-rpki-rtr.c
+++ b/epan/dissectors/packet-rpki-rtr.c
@@ -149,6 +149,7 @@ static int dissect_rpkirtr_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
switch (pdu_type) {
case RPKI_RTR_SERIAL_NOTIFY_PDU: /* Serial Notify (0) */
case RPKI_RTR_SERIAL_QUERY_PDU: /* Serial Query (1) */
+ case RPKI_RTR_END_OF_DATA_PDU: /* End Of Data (7) */
proto_tree_add_item(rpkirtr_tree, hf_rpkirtr_session_id, tvb, offset, 2, ENC_BIG_ENDIAN);
offset += 2;
proto_tree_add_item(rpkirtr_tree, hf_rpkirtr_length, tvb, offset, 4, ENC_BIG_ENDIAN);
@@ -166,7 +167,6 @@ static int dissect_rpkirtr_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
offset += 4;
break;
case RPKI_RTR_CACHE_RESPONSE_PDU: /* Cache Response (3) */
- case RPKI_RTR_END_OF_DATA_PDU: /* End Of Data (7) */
proto_tree_add_item(rpkirtr_tree, hf_rpkirtr_session_id, tvb, offset, 2, ENC_BIG_ENDIAN);
offset += 2;
proto_tree_add_item(rpkirtr_tree, hf_rpkirtr_length, tvb, offset, 4, ENC_BIG_ENDIAN);