diff options
author | Alexis La Goutte <alexis.lagoutte@gmail.com> | 2018-02-27 22:33:32 +0100 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2018-02-28 06:28:33 +0000 |
commit | dfd0e65e3087548bb7216dce7ad2e332292f9d14 (patch) | |
tree | 0eb45a721a989bb7b41f657ddcd686948b56cd02 | |
parent | 5488c29b15cc505a048283f6292ade8e41129840 (diff) |
GQUIC: Try to fix ACK frame with Q039
Change-Id: Id717c5354826c6aac0b72426213a128e0f501377
Reviewed-on: https://code.wireshark.org/review/26154
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
-rw-r--r-- | epan/dissectors/packet-gquic.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/epan/dissectors/packet-gquic.c b/epan/dissectors/packet-gquic.c index aa39c6fc26..ccdcad021a 100644 --- a/epan/dissectors/packet-gquic.c +++ b/epan/dissectors/packet-gquic.c @@ -1309,7 +1309,7 @@ static gboolean is_gquic_unencrypt(tvbuff_t *tvb, packet_info *pinfo, guint offs num_timestamp = tvb_get_guint8(tvb, offset); offset += 1; - if(num_timestamp){ + if(num_timestamp > 0){ /* Delta Largest Acked */ offset += 1; @@ -1318,7 +1318,7 @@ static gboolean is_gquic_unencrypt(tvbuff_t *tvb, packet_info *pinfo, guint offs offset += 4; /* Num Timestamp x (Delta Largest Acked + Time Since Previous Timestamp) */ - offset += num_timestamp*(1+2); + offset += (num_timestamp - 1)*(1+2); } } @@ -1949,6 +1949,7 @@ dissect_gquic_frame_type(tvbuff_t *tvb, packet_info *pinfo, proto_tree *gquic_tr proto_tree_add_item(ft_tree, hf_gquic_frame_type_ack_time_since_largest_acked, tvb, offset, 4, gquic_info->encoding); offset += 4; + num_timestamp -= 1; /* Num Timestamp x (Delta Largest Acked + Time Since Previous Timestamp) */ while(num_timestamp){ proto_tree_add_item(ft_tree, hf_gquic_frame_type_ack_delta_largest_acked, tvb, offset, 1, ENC_NA); |