Переглянути джерело

Chunker: fix infinite loop

Could happen at EOF when remaining data is insufficient and no new data can be added.
Thomas Waldmann 1 місяць тому
батько
коміт
a235cff0c5
1 змінених файлів з 1 додано та 1 видалено
  1. 1 1
      src/borg/chunker.pyx

+ 1 - 1
src/borg/chunker.pyx

@@ -680,7 +680,7 @@ cdef class Chunker:
         self.remaining -= min_size
         sum = _buzhash(self.data + self.position, window_size, self.table)
 
-        while self.remaining > self.window_size and (sum & chunk_mask):
+        while self.remaining > self.window_size and (sum & chunk_mask) and not (self.eof and self.remaining <= window_size):
             p = self.data + self.position
             stop_at = p + self.remaining - window_size