Merge "Fix infinite loop when using extents." am: db7f0c8

am: 7d0541e

* commit '7d0541ea51d2a7f193935d750540971ffea4886d':
  Fix infinite loop when using extents.

Change-Id: Ide78dbfd69535124cdfeb56feda40fcd93dc0899
This commit is contained in:
Sen Jiang authored and android-build-merger committed 2016-04-12 00:53:03 +00:00
commit 424f91cc52
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();
}