Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(680)

Side by Side Diff: net/quic/quic_framer.cc

Issue 156233004: Add a LOG(DFATAL) if the sequence number length is too small to fit the (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | net/quic/quic_framer_test.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/quic/quic_framer.h" 5 #include "net/quic/quic_framer.h"
6 6
7 #include "base/containers/hash_tables.h" 7 #include "base/containers/hash_tables.h"
8 #include "base/stl_util.h" 8 #include "base/stl_util.h"
9 #include "net/quic/crypto/crypto_framer.h" 9 #include "net/quic/crypto/crypto_framer.h"
10 #include "net/quic/crypto/crypto_handshake_message.h" 10 #include "net/quic/crypto/crypto_handshake_message.h"
(...skipping 2031 matching lines...) Expand 10 before | Expand all | Expand 10 after
2042 2042
2043 // TODO(satyamshekhar): Decide how often we really should send this 2043 // TODO(satyamshekhar): Decide how often we really should send this
2044 // entropy_hash update. 2044 // entropy_hash update.
2045 if (!writer->WriteUInt8(frame.sent_info.entropy_hash)) { 2045 if (!writer->WriteUInt8(frame.sent_info.entropy_hash)) {
2046 return false; 2046 return false;
2047 } 2047 }
2048 2048
2049 DCHECK_GE(header.packet_sequence_number, frame.sent_info.least_unacked); 2049 DCHECK_GE(header.packet_sequence_number, frame.sent_info.least_unacked);
2050 const QuicPacketSequenceNumber least_unacked_delta = 2050 const QuicPacketSequenceNumber least_unacked_delta =
2051 header.packet_sequence_number - frame.sent_info.least_unacked; 2051 header.packet_sequence_number - frame.sent_info.least_unacked;
2052 const QuicPacketSequenceNumber length_shift =
2053 header.public_header.sequence_number_length * 8;
2054 if (least_unacked_delta >> length_shift > 0) {
2055 LOG(DFATAL) << "sequence_number_length "
2056 << header.public_header.sequence_number_length
2057 << " is too small for least_unacked_delta: "
2058 << least_unacked_delta;
2059 return false;
2060 }
2052 if (!AppendPacketSequenceNumber(header.public_header.sequence_number_length, 2061 if (!AppendPacketSequenceNumber(header.public_header.sequence_number_length,
2053 least_unacked_delta, writer)) { 2062 least_unacked_delta, writer)) {
2054 return false; 2063 return false;
2055 } 2064 }
2056 2065
2057 const ReceivedPacketInfo& received_info = frame.received_info; 2066 const ReceivedPacketInfo& received_info = frame.received_info;
2058 QuicPacketEntropyHash ack_entropy_hash = received_info.entropy_hash; 2067 QuicPacketEntropyHash ack_entropy_hash = received_info.entropy_hash;
2059 NackRangeMap::reverse_iterator ack_iter = ack_info.nack_ranges.rbegin(); 2068 NackRangeMap::reverse_iterator ack_iter = ack_info.nack_ranges.rbegin();
2060 if (truncated) { 2069 if (truncated) {
2061 // Skip the nack ranges which the truncated ack won't include and set 2070 // Skip the nack ranges which the truncated ack won't include and set
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
2322 2331
2323 bool QuicFramer::RaiseError(QuicErrorCode error) { 2332 bool QuicFramer::RaiseError(QuicErrorCode error) {
2324 DVLOG(1) << "Error detail: " << detailed_error_; 2333 DVLOG(1) << "Error detail: " << detailed_error_;
2325 set_error(error); 2334 set_error(error);
2326 visitor_->OnError(this); 2335 visitor_->OnError(this);
2327 reader_.reset(NULL); 2336 reader_.reset(NULL);
2328 return false; 2337 return false;
2329 } 2338 }
2330 2339
2331 } // namespace net 2340 } // namespace net
OLDNEW
« no previous file with comments | « no previous file | net/quic/quic_framer_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698