浏览代码

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
         self.remaining -= min_size
         sum = _buzhash(self.data + self.position, window_size, self.table)
         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
             p = self.data + self.position
             stop_at = p + self.remaining - window_size
             stop_at = p + self.remaining - window_size