Index: content/browser/fileapi/upload_file_system_file_element_reader.cc |
diff --git a/content/browser/fileapi/upload_file_system_file_element_reader.cc b/content/browser/fileapi/upload_file_system_file_element_reader.cc |
index c9bbc885c985a4d505e074d6b57926a3a32c4d6e..a6a99ca0c75f68de2312838e007b7f881fc77ada 100644 |
--- a/content/browser/fileapi/upload_file_system_file_element_reader.cc |
+++ b/content/browser/fileapi/upload_file_system_file_element_reader.cc |
@@ -5,8 +5,10 @@ |
#include "content/browser/fileapi/upload_file_system_file_element_reader.h" |
#include <algorithm> |
+#include <limits> |
#include "base/bind.h" |
+#include "base/numerics/safe_conversions.h" |
#include "net/base/net_errors.h" |
#include "storage/browser/blob/file_stream_reader.h" |
#include "storage/browser/fileapi/file_system_context.h" |
@@ -41,11 +43,13 @@ int UploadFileSystemFileElementReader::Init( |
position_ = 0; |
// Initialize the stream reader and the length. |
- stream_reader_ = |
- file_system_context_->CreateFileStreamReader( |
- file_system_context_->CrackURL(url_), |
- range_offset_, |
- expected_modification_time_); |
+ stream_reader_ = file_system_context_->CreateFileStreamReader( |
+ file_system_context_->CrackURL(url_), |
+ range_offset_, |
+ range_length_ == std::numeric_limits<uint64>::max() |
+ ? storage::kMaximumLength |
+ : base::checked_cast<int64>(range_length_), |
+ expected_modification_time_); |
DCHECK(stream_reader_); |
const int64 result = stream_reader_->GetLength( |