|
26 | 26 | import json |
27 | 27 | import stat |
28 | 28 | import shutil |
| 29 | +import base64 |
29 | 30 | import logging |
30 | 31 | import zipfile |
31 | 32 | import platform |
|
83 | 84 |
|
84 | 85 | # TAR file checking |
85 | 86 | try: |
86 | | - from xtarfile import is_tarfile |
| 87 | + from safetar import is_tarfile |
87 | 88 | except ImportError: |
88 | | - try: |
89 | | - from safetar import is_tarfile |
90 | | - except ImportError: |
91 | | - from tarfile import is_tarfile |
| 89 | + from tarfile import is_tarfile |
92 | 90 |
|
93 | 91 | # TAR file module |
94 | 92 | try: |
95 | | - import xtarfile as tarfile |
| 93 | + import safetar as tarfile |
96 | 94 | except ImportError: |
97 | | - try: |
98 | | - import safetar as tarfile |
99 | | - except ImportError: |
100 | 95 | import tarfile |
101 | 96 |
|
102 | 97 | try: |
@@ -1816,7 +1811,7 @@ def CheckCompressionType(infile, formatspecs=__file_format_multi_dict__, filesta |
1816 | 1811 | if(prefp == binascii.unhexlify("7061785f676c6f62616c")): |
1817 | 1812 | filetype = "tarfile" |
1818 | 1813 | fp.seek(curloc, 0) |
1819 | | - if(filetype == "gzip" or filetype == "bzip2" or filetype == "lzma" or filetype == "zstd" or filetype == "lz4" or filetype == "zlib"): |
| 1814 | + if(filetype == "gzip" or filetype == "bzip2" or filetype == "lzma" or filetype == "xz" or filetype == "zstd" or filetype == "lz4" or filetype == "zlib"): |
1820 | 1815 | if(TarFileCheck(fp)): |
1821 | 1816 | filetype = "tarfile" |
1822 | 1817 | elif(not filetype): |
@@ -1857,7 +1852,7 @@ def CheckCompressionSubType(infile, formatspecs=__file_format_multi_dict__, file |
1857 | 1852 | compresscheck = "zlib" |
1858 | 1853 | else: |
1859 | 1854 | return False |
1860 | | - if(compresscheck == "gzip" or compresscheck == "bzip2" or compresscheck == "lzma" or compresscheck == "zstd" or compresscheck == "lz4" or compresscheck == "zlib"): |
| 1855 | + if(compresscheck == "gzip" or compresscheck == "bzip2" or compresscheck == "lzma" or compresscheck == "xz" or compresscheck == "zstd" or compresscheck == "lz4" or compresscheck == "zlib"): |
1861 | 1856 | if(TarFileCheck(infile)): |
1862 | 1857 | filetype = "tarfile" |
1863 | 1858 | elif(not compresscheck): |
@@ -6237,6 +6232,11 @@ def AppendFilesWithContentFromTarFileToList(infile, extradata=[], jsondata={}, c |
6237 | 6232 | fcontents = MkTempFile() |
6238 | 6233 | fcencoding = "UTF-8" |
6239 | 6234 | curcompression = "none" |
| 6235 | + pax_headers = getattr(member, "pax_headers", None) |
| 6236 | + if(not pax_headers): |
| 6237 | + pax_headers = None |
| 6238 | + if(pax_headers is not None): |
| 6239 | + jsondata.update({'pax_headers': pax_headers}) |
6240 | 6240 | if ftype in data_types: |
6241 | 6241 | fpc = tarfp.extractfile(member) |
6242 | 6242 | shutil.copyfileobj(fpc, fcontents, length=__filebuff_size__) |
|
0 commit comments