Merge "Fix infinite loop when using extents."

am: db7f0c8

* commit 'db7f0c891478b726567611468a65453a14f80559':
  Fix infinite loop when using extents.

Change-Id: I6a7899619fea9e31a84e99c12c753a722fd5aac7
This commit is contained in:
Sen Jiang authored and android-build-merger committed 2016-04-12 00:47:29 +00:00
commit 7d0541ea51
2 files changed
+4 -1

No files matched your search

+1 -1
View File
@@ -112,7 +112,7 @@ bool WriteAll(const std::unique_ptr<FileInterface>& file,
size_t size) {
size_t offset = 0, written;
while (offset < size) {
if (!file->Write(data + offset, size - offset, &written))
if (!file->Write(data + offset, size - offset, &written) || written == 0)
return false;
offset += written;
}
+3
View File
@@ -35,6 +35,9 @@ bool MemoryFile::Seek(off_t pos) {
bool MemoryFile::Close() {
if (!WriteAll(file_, buffer_.data(), buffer_.size()))
return false;
// Prevent writing |buffer_| to |file_| again if Close() is called more than
// once.
buffer_.clear();
return file_->Close();
}