diff options
author | Alexis La Goutte <alexis.lagoutte@gmail.com> | 2014-08-25 16:02:07 +0200 |
---|---|---|
committer | Alexis La Goutte <alexis.lagoutte@gmail.com> | 2014-08-25 14:07:27 +0000 |
commit | f44e082fa8403023425e27b28cb295f4e40e34e6 (patch) | |
tree | 33a88a4b337350b1f05e06c7b4e754e41e112471 | |
parent | c697a86f3253d26b31ba7a497ac8e7faa0483a43 (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.c | 2 |
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); |