Przeglądaj źródła

zlib legacy decompress: return meta dict, fixes #7883

for the other compression methods, this is done in
the base class, but the zlib legacy does not call
that method as it also removes the header bytes,
which zlib legacy does not have.
Thomas Waldmann 1 rok temu
rodzic
commit
0cfdf6da91
1 zmienionych plików z 6 dodań i 0 usunięć
  1. 6 0
      src/borg/compress.pyx

+ 6 - 0
src/borg/compress.pyx

@@ -438,6 +438,12 @@ class ZLIB_legacy(CompressorBase):
 
     def decompress(self, meta, data):
         # note: for compatibility no super call, do not strip ID bytes
+        assert self.legacy_mode  # only borg 1.x repos have the legacy ZLIB format
+        assert meta is None
+        meta = {}
+        meta["ctype"] = ZLIB.ID  # change to non-legacy ZLIB id
+        meta["clevel"] = 255  # we do not know the compression level
+        meta["csize"] = len(data)
         try:
             return meta, zlib.decompress(data)
         except zlib.error as e: