Bläddra i källkod

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 år sedan
förälder
incheckning
0cfdf6da91
1 ändrade filer med 6 tillägg och 0 borttagningar
  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: