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

Unified Diff: net/filter/brotli_source_stream.cc

Issue 2451833004: Fix net::BrotliSourceStream to ignore trailing data. (Closed)
Patch Set: add const Created 4 years, 2 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 | « no previous file | net/filter/brotli_source_stream_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/filter/brotli_source_stream.cc
diff --git a/net/filter/brotli_source_stream.cc b/net/filter/brotli_source_stream.cc
index a7f7283f6abeb3e04f7649747d931b5834f138fc..453ccac09e61e80e3314d302f0ccdedc8e1e3d03 100644
--- a/net/filter/brotli_source_stream.cc
+++ b/net/filter/brotli_source_stream.cc
@@ -93,6 +93,14 @@ class BrotliSourceStream : public FilterSourceStream {
int input_buffer_size,
int* consumed_bytes,
bool /*upstream_eof_reached*/) override {
+ if (decoding_status_ == DecodingStatus::DECODING_DONE) {
+ *consumed_bytes = input_buffer_size;
+ return OK;
+ }
+
+ if (decoding_status_ != DecodingStatus::DECODING_IN_PROGRESS)
+ return ERR_CONTENT_DECODING_FAILED;
+
const uint8_t* next_in = bit_cast<uint8_t*>(input_buffer->data());
size_t available_in = input_buffer_size;
uint8_t* next_out = bit_cast<uint8_t*>(output_buffer->data());
@@ -125,6 +133,9 @@ class BrotliSourceStream : public FilterSourceStream {
return bytes_written;
case BROTLI_RESULT_SUCCESS:
decoding_status_ = DecodingStatus::DECODING_DONE;
+ // Consume remaining bytes to avoid DCHECK in FilterSourceStream.
+ // See crbug.com/659311.
+ *consumed_bytes = input_buffer_size;
return bytes_written;
case BROTLI_RESULT_NEEDS_MORE_INPUT:
// Decompress needs more input has consumed all existing input.
« no previous file with comments | « no previous file | net/filter/brotli_source_stream_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698