Index: net/base/elements_upload_data_stream.cc |
diff --git a/net/base/elements_upload_data_stream.cc b/net/base/elements_upload_data_stream.cc |
index bca7d4e7aab0ac1dc2b5d5c019100a8bdff23660..e1b6418439f2443334b7f474c5ed9ff948b0d027 100644 |
--- a/net/base/elements_upload_data_stream.cc |
+++ b/net/base/elements_upload_data_stream.cc |
@@ -20,7 +20,7 @@ ElementsUploadDataStream::ElementsUploadDataStream( |
: UploadDataStream(false, identifier), |
element_readers_(std::move(element_readers)), |
element_index_(0), |
- read_failed_(false), |
+ read_failed_(OK), |
weak_ptr_factory_(this) {} |
ElementsUploadDataStream::~ElementsUploadDataStream() { |
@@ -61,7 +61,7 @@ ElementsUploadDataStream::GetElementReaders() const { |
void ElementsUploadDataStream::ResetInternal() { |
weak_ptr_factory_.InvalidateWeakPtrs(); |
- read_failed_ = false; |
+ read_failed_ = OK; |
element_index_ = 0; |
} |
@@ -125,16 +125,8 @@ int ElementsUploadDataStream::ReadElements( |
ProcessReadResult(buf, result); |
} |
- if (read_failed_) { |
- // If an error occured during read operation, then pad with zero. |
- // Otherwise the server will hang waiting for the rest of the data. |
- int num_bytes_to_fill = |
- static_cast<int>(std::min(static_cast<uint64_t>(buf->BytesRemaining()), |
- size() - position() - buf->BytesConsumed())); |
- DCHECK_GE(num_bytes_to_fill, 0); |
- memset(buf->data(), 0, num_bytes_to_fill); |
- buf->DidConsume(num_bytes_to_fill); |
- } |
+ if (read_failed_ != OK) |
+ return read_failed_; |
return buf->BytesConsumed(); |
} |
@@ -158,7 +150,7 @@ void ElementsUploadDataStream::ProcessReadResult( |
if (result >= 0) { |
buf->DidConsume(result); |
} else { |
- read_failed_ = true; |
+ read_failed_ = result; |
} |
} |