mirror of
https://github.com/expo/bsdiff.git
synced 2026-11-14 17:49:03 -10:00
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:
commit
7d0541ea51
2 files changed
+4
-1
No files matched your search
+1
-1
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user