[Bug #812325 ] tarfile.close() can write out more bytes to the output
than are specified by the buffer size. The patch calls .__write()
to ensure that any full blocks are written out.
diff --git a/Lib/tarfile.py b/Lib/tarfile.py
index 26f9c7f..6f44146 100644
--- a/Lib/tarfile.py
+++ b/Lib/tarfile.py
@@ -353,6 +353,7 @@
if self.mode == "w" and self.buf:
if self.type != "tar":
self.buf += self.cmp.flush()
+ self.__write("") # Write remaining blocks to output
self.fileobj.write(self.buf)
self.buf = ""
if self.type == "gz":