From 8ae983c4f680de929726c5a17340f8b0231a9c9d Mon Sep 17 00:00:00 2001 From: Philipp Gesang Date: Tue, 25 Apr 2017 14:03:36 +0200 Subject: [PATCH] properly (re-) initialize compressor at archive / volume bounds For unencrypted streams, the compressor still must be reset in concat mode. For encrypted streams, the decompressor can be initialized right at the start of the archive since no further inputs are needed. --- deltatar/tarfile.py | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/deltatar/tarfile.py b/deltatar/tarfile.py index e3659a3..78fdad8 100644 --- a/deltatar/tarfile.py +++ b/deltatar/tarfile.py @@ -463,8 +463,7 @@ class _Stream: self.zlib = zlib if mode == "r": self.exception = zlib.error - if self.encryption is None: - self._init_read_gz() + self._init_read_gz() elif mode == "w": if self.encryption is None and concat_stream is False: self._init_write_gz () @@ -2515,7 +2514,8 @@ class TarFile(object): if getattr (self.fileobj, "encryption", None) is not None: self.fileobj._init_write_encrypt (tarinfo.name) - if getattr (self.fileobj, "cmp", None) is not None: + if self.concat_compression or \ + getattr (self.fileobj, "cmp", None) is not None: self.fileobj._init_write_gz () # write new volume header -- 1.7.1