|
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: |
@@ -1810,7 +1805,7 @@ def CheckCompressionType(infile, formatspecs=__file_format_multi_dict__, filesta |
1810 | 1805 | if(prefp == binascii.unhexlify("7061785f676c6f62616c")): |
1811 | 1806 | filetype = "tarfile" |
1812 | 1807 | fp.seek(curloc, 0) |
1813 | | - if(filetype == "gzip" or filetype == "bzip2" or filetype == "lzma" or filetype == "zstd" or filetype == "lz4" or filetype == "zlib"): |
| 1808 | + if(filetype == "gzip" or filetype == "bzip2" or filetype == "lzma" or filetype == "xz" or filetype == "zstd" or filetype == "lz4" or filetype == "zlib"): |
1814 | 1809 | if(TarFileCheck(fp)): |
1815 | 1810 | filetype = "tarfile" |
1816 | 1811 | elif(not filetype): |
@@ -1851,7 +1846,7 @@ def CheckCompressionSubType(infile, formatspecs=__file_format_multi_dict__, file |
1851 | 1846 | compresscheck = "zlib" |
1852 | 1847 | else: |
1853 | 1848 | return False |
1854 | | - if(compresscheck == "gzip" or compresscheck == "bzip2" or compresscheck == "lzma" or compresscheck == "zstd" or compresscheck == "lz4" or compresscheck == "zlib"): |
| 1849 | + if(compresscheck == "gzip" or compresscheck == "bzip2" or compresscheck == "lzma" or compresscheck == "xz" or compresscheck == "zstd" or compresscheck == "lz4" or compresscheck == "zlib"): |
1855 | 1850 | if(TarFileCheck(infile)): |
1856 | 1851 | filetype = "tarfile" |
1857 | 1852 | elif(not compresscheck): |
@@ -6231,6 +6226,11 @@ def AppendFilesWithContentFromTarFileToList(infile, extradata=[], jsondata={}, c |
6231 | 6226 | fcontents = MkTempFile() |
6232 | 6227 | fcencoding = "UTF-8" |
6233 | 6228 | curcompression = "none" |
| 6229 | + pax_headers = getattr(member, "pax_headers", None) |
| 6230 | + if(not pax_headers): |
| 6231 | + pax_headers = None |
| 6232 | + if(pax_headers is not None): |
| 6233 | + jsondata.update({'pax_headers': pax_headers}) |
6234 | 6234 | if ftype in data_types: |
6235 | 6235 | fpc = tarfp.extractfile(member) |
6236 | 6236 | shutil.copyfileobj(fpc, fcontents, length=__filebuff_size__) |
|
0 commit comments