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

Unified Diff: net/quic/quic_framer.cc

Issue 1904833002: Ignore invalid error code in QuicFramer when process GoAway, ConnectionClose, (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@119529330
Patch Set: Rebase Created 4 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/quic/quic_flags.cc ('k') | net/quic/quic_network_transaction_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/quic/quic_framer.cc
diff --git a/net/quic/quic_framer.cc b/net/quic/quic_framer.cc
index da91cfca96cd49b0a7378613fe52d07d7d922a39..206764f6ed7cb76e6b0cb818f181e674b8fd88bc 100644
--- a/net/quic/quic_framer.cc
+++ b/net/quic/quic_framer.cc
@@ -1494,8 +1494,13 @@ bool QuicFramer::ProcessRstStreamFrame(QuicDataReader* reader,
}
if (error_code >= QUIC_STREAM_LAST_ERROR) {
- set_detailed_error("Invalid rst stream error code.");
- return false;
+ if (FLAGS_quic_ignore_invalid_error_code) {
+ // Ignore invalid stream error code if any.
+ error_code = QUIC_STREAM_LAST_ERROR;
+ } else {
+ set_detailed_error("Invalid rst stream error code.");
+ return false;
+ }
}
frame->error_code = static_cast<QuicRstStreamErrorCode>(error_code);
@@ -1511,8 +1516,13 @@ bool QuicFramer::ProcessConnectionCloseFrame(QuicDataReader* reader,
}
if (error_code >= QUIC_LAST_ERROR) {
- set_detailed_error("Invalid error code.");
- return false;
+ if (FLAGS_quic_ignore_invalid_error_code) {
+ // Ignore invalid QUIC error code if any.
+ error_code = QUIC_LAST_ERROR;
+ } else {
+ set_detailed_error("Invalid error code.");
+ return false;
+ }
}
frame->error_code = static_cast<QuicErrorCode>(error_code);
@@ -1534,12 +1544,17 @@ bool QuicFramer::ProcessGoAwayFrame(QuicDataReader* reader,
set_detailed_error("Unable to read go away error code.");
return false;
}
- frame->error_code = static_cast<QuicErrorCode>(error_code);
if (error_code >= QUIC_LAST_ERROR) {
- set_detailed_error("Invalid error code.");
- return false;
+ if (FLAGS_quic_ignore_invalid_error_code) {
+ // Ignore invalid QUIC error code if any.
+ error_code = QUIC_LAST_ERROR;
+ } else {
+ set_detailed_error("Invalid error code.");
+ return false;
+ }
}
+ frame->error_code = static_cast<QuicErrorCode>(error_code);
uint32_t stream_id;
if (!reader->ReadUInt32(&stream_id)) {
« no previous file with comments | « net/quic/quic_flags.cc ('k') | net/quic/quic_network_transaction_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698