Skip to content

Commit dc03dd4

Browse files
authored
Add files via upload
1 parent d95e4b7 commit dc03dd4

1 file changed

Lines changed: 52 additions & 59 deletions

File tree

pyarchivefile.py

Lines changed: 52 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -4318,25 +4318,24 @@ def ReadFileHeaderDataWithContentToArray(fp, listonly=False, contentasfile=True,
43184318
finode = int(HeaderOut[24], 16)
43194319
flinkcount = int(HeaderOut[25], 16)
43204320
fdev = int(HeaderOut[26], 16)
4321-
fdev_minor = int(HeaderOut[27], 16)
4322-
fdev_major = int(HeaderOut[28], 16)
4323-
fseeknextfile = HeaderOut[29]
4324-
fjsontype = HeaderOut[30]
4325-
fjsonlen = int(HeaderOut[31], 16)
4326-
fjsonsize = int(HeaderOut[32], 16)
4327-
fjsonchecksumtype = HeaderOut[33]
4328-
fjsonchecksum = HeaderOut[34]
4329-
fextrasize = int(HeaderOut[35], 16)
4330-
fextrafields = int(HeaderOut[36], 16)
4321+
frdev = int(HeaderOut[27], 16)
4322+
fseeknextfile = HeaderOut[28]
4323+
fjsontype = HeaderOut[29]
4324+
fjsonlen = int(HeaderOut[30], 16)
4325+
fjsonsize = int(HeaderOut[31], 16)
4326+
fjsonchecksumtype = HeaderOut[32]
4327+
fjsonchecksum = HeaderOut[33]
4328+
fextrasize = int(HeaderOut[34], 16)
4329+
fextrafields = int(HeaderOut[35], 16)
43314330
fextrafieldslist = []
4332-
extrastart = 37
4331+
extrastart = 36
43334332
extraend = extrastart + fextrafields
43344333
while(extrastart < extraend):
43354334
fextrafieldslist.append(HeaderOut[extrastart])
43364335
extrastart = extrastart + 1
43374336
fvendorfieldslist = []
43384337
fvendorfields = 0;
4339-
if(len(HeaderOut)>41):
4338+
if(len(HeaderOut)>40):
43404339
extrastart = extraend
43414340
extraend = len(HeaderOut) - 4
43424341
while(extrastart < extraend):
@@ -4496,7 +4495,7 @@ def ReadFileHeaderDataWithContentToArray(fp, listonly=False, contentasfile=True,
44964495
if(not contentasfile):
44974496
fcontents = fcontents.read()
44984497
outlist = {'fheadersize': fheadsize, 'fhstart': fheaderstart, 'fhend': fhend, 'ftype': ftype, 'fencoding': fencoding, 'fcencoding': fcencoding, 'fname': fname, 'fbasedir': fbasedir, 'flinkname': flinkname, 'fsize': fsize, 'fblksize': fblksize, 'fblocks': fblocks, 'fflags': fflags, 'fatime': fatime, 'fmtime': fmtime, 'fctime': fctime, 'fbtime': fbtime, 'fmode': fmode, 'fchmode': fchmode, 'ftypemod': ftypemod, 'fwinattributes': fwinattributes, 'fcompression': fcompression, 'fcsize': fcsize, 'fuid': fuid, 'funame': funame, 'fgid': fgid, 'fgname': fgname, 'finode': finode, 'flinkcount': flinkcount,
4499-
'fdev': fdev, 'fminor': fdev_minor, 'fmajor': fdev_major, 'fseeknextfile': fseeknextfile, 'fheaderchecksumtype': HeaderOut[-4], 'fjsonchecksumtype': fjsonchecksumtype, 'fcontentchecksumtype': HeaderOut[-3], 'fnumfields': fnumfields + 2, 'frawheader': HeaderOut, 'fvendorfields': fvendorfields, 'fvendordata': fvendorfieldslist, 'fextrafields': fextrafields, 'fextrafieldsize': fextrasize, 'fextradata': fextrafieldslist, 'fjsontype': fjsontype, 'fjsonlen': fjsonlen, 'fjsonsize': fjsonsize, 'fjsonrawdata': fjsonrawcontent, 'fjsondata': fjsoncontent, 'fjstart': fjstart, 'fjend': fjend, 'fheaderchecksum': fcs, 'fjsonchecksum': fjsonchecksum, 'fcontentchecksum': fccs, 'fhascontents': pyhascontents, 'fcontentstart': fcontentstart, 'fcontentend': fcontentend, 'fcontentasfile': contentasfile, 'fcontents': fcontents}
4498+
'fdev': fdev, 'frdev': frdev, 'fseeknextfile': fseeknextfile, 'fheaderchecksumtype': HeaderOut[-4], 'fjsonchecksumtype': fjsonchecksumtype, 'fcontentchecksumtype': HeaderOut[-3], 'fnumfields': fnumfields + 2, 'frawheader': HeaderOut, 'fvendorfields': fvendorfields, 'fvendordata': fvendorfieldslist, 'fextrafields': fextrafields, 'fextrafieldsize': fextrasize, 'fextradata': fextrafieldslist, 'fjsontype': fjsontype, 'fjsonlen': fjsonlen, 'fjsonsize': fjsonsize, 'fjsonrawdata': fjsonrawcontent, 'fjsondata': fjsoncontent, 'fjstart': fjstart, 'fjend': fjend, 'fheaderchecksum': fcs, 'fjsonchecksum': fjsonchecksum, 'fcontentchecksum': fccs, 'fhascontents': pyhascontents, 'fcontentstart': fcontentstart, 'fcontentend': fcontentend, 'fcontentasfile': contentasfile, 'fcontents': fcontents}
45004499
return outlist
45014500

45024501

@@ -4544,18 +4543,17 @@ def ReadFileHeaderDataWithContentToList(fp, listonly=False, contentasfile=False,
45444543
finode = int(HeaderOut[24], 16)
45454544
flinkcount = int(HeaderOut[25], 16)
45464545
fdev = int(HeaderOut[26], 16)
4547-
fdev_minor = int(HeaderOut[27], 16)
4548-
fdev_major = int(HeaderOut[28], 16)
4549-
fseeknextfile = HeaderOut[29]
4550-
fjsontype = HeaderOut[30]
4551-
fjsonlen = int(HeaderOut[31], 16)
4552-
fjsonsize = int(HeaderOut[32], 16)
4553-
fjsonchecksumtype = HeaderOut[33]
4554-
fjsonchecksum = HeaderOut[34]
4555-
fextrasize = int(HeaderOut[35], 16)
4556-
fextrafields = int(HeaderOut[36], 16)
4546+
frdev = int(HeaderOut[27], 16)
4547+
fseeknextfile = HeaderOut[28]
4548+
fjsontype = HeaderOut[29]
4549+
fjsonlen = int(HeaderOut[30], 16)
4550+
fjsonsize = int(HeaderOut[31], 16)
4551+
fjsonchecksumtype = HeaderOut[32]
4552+
fjsonchecksum = HeaderOut[33]
4553+
fextrasize = int(HeaderOut[34], 16)
4554+
fextrafields = int(HeaderOut[35], 16)
45574555
fextrafieldslist = []
4558-
extrastart = 37
4556+
extrastart = 36
45594557
extraend = extrastart + fextrafields
45604558
while(extrastart < extraend):
45614559
fextrafieldslist.append(HeaderOut[extrastart])
@@ -4710,7 +4708,7 @@ def ReadFileHeaderDataWithContentToList(fp, listonly=False, contentasfile=False,
47104708
if(not contentasfile):
47114709
fcontents = fcontents.read()
47124710
outlist = [ftype, fencoding, fcencoding, fname, flinkname, fsize, fblksize, fblocks, fflags, fatime, fmtime, fctime, fbtime, fmode, fwinattributes, fcompression, fcsize, fuid, funame, fgid, fgname, fid,
4713-
finode, flinkcount, fdev, fdev_minor, fdev_major, fseeknextfile, fjsoncontent, fextrafieldslist, HeaderOut[-4], HeaderOut[-3], fcontents]
4711+
finode, flinkcount, fdev, frdev, fseeknextfile, fjsoncontent, fextrafieldslist, HeaderOut[-4], HeaderOut[-3], fcontents]
47144712
return outlist
47154713

47164714

@@ -6009,9 +6007,10 @@ def AppendFilesWithContent(infiles, fp, dirlistfromtxt=False, extradata=[], json
60096007
fdev = fstatinfo.st_rdev
60106008
except AttributeError:
60116009
fdev = 0
6012-
getfdev = GetDevMajorMinor(fdev)
6013-
fdev_minor = getfdev[0]
6014-
fdev_major = getfdev[1]
6010+
try:
6011+
frdev = fstatinfo.st_rdev
6012+
except AttributeError:
6013+
frdev = 0
60156014
# Types that should be considered zero-length in the archive context:
60166015
zero_length_types = {1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 13}
60176016
# Types that have actual data to read:
@@ -6055,8 +6054,7 @@ def AppendFilesWithContent(infiles, fp, dirlistfromtxt=False, extradata=[], json
60556054
except ImportError:
60566055
fgname = ""
60576056
fdev = format(int(fdev), 'x').lower()
6058-
fdev_minor = format(int(fdev_minor), 'x').lower()
6059-
fdev_major = format(int(fdev_major), 'x').lower()
6057+
frdev = format(int(frdev), 'x').lower()
60606058
finode = format(int(finode), 'x').lower()
60616059
flinkcount = format(int(flinkcount), 'x').lower()
60626060
if(hasattr(fstatinfo, "st_file_attributes")):
@@ -6171,7 +6169,7 @@ def AppendFilesWithContent(infiles, fp, dirlistfromtxt=False, extradata=[], json
61716169
fcontents.seek(0, 0)
61726170
ftypehex = format(ftype, 'x').lower()
61736171
tmpoutlist = [ftypehex, fencoding, fcencoding, fname, flinkname, fsize, fblksize, fblocks, fflags, fatime, fmtime, fctime, fbtime, fmode, fwinattributes, fcompression,
6174-
fcsize, fuid, funame, fgid, fgname, fcurfid, fcurinode, flinkcount, fdev, fdev_minor, fdev_major, "+"+str(len(formatspecs['format_delimiter']))]
6172+
fcsize, fuid, funame, fgid, fgname, fcurfid, fcurinode, flinkcount, fdev, frdev, "+"+str(len(formatspecs['format_delimiter']))]
61756173
AppendFileHeaderWithContent(
61766174
fp, tmpoutlist, extradata, jsondata, fcontents.read(), [checksumtype[2], checksumtype[3], checksumtype[4]], formatspecs)
61776175
try:
@@ -6315,12 +6313,11 @@ def AppendFilesWithContentFromTarFile(infile, fp, extradata=[], jsondata={}, com
63156313
curfid = curfid + 1
63166314
if(ftype == 2):
63176315
flinkname = member.linkname
6316+
fdev = format(int("0"), 'x').lower()
63186317
try:
6319-
fdev = format(int(os.makedev(member.devmajor, member.devminor)), 'x').lower()
6318+
frdev = format(int(os.makedev(member.devmajor, member.devminor)), 'x').lower()
63206319
except AttributeError:
6321-
fdev = format(int(MakeDevAlt(member.devmajor, member.devminor)), 'x').lower()
6322-
fdev_minor = format(int(member.devminor), 'x').lower()
6323-
fdev_major = format(int(member.devmajor), 'x').lower()
6320+
frdev = format(int(MakeDevAlt(member.devmajor, member.devminor)), 'x').lower()
63246321
# Types that should be considered zero-length in the archive context:
63256322
zero_length_types = {1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 13}
63266323
# Types that have actual data to read:
@@ -6402,7 +6399,7 @@ def AppendFilesWithContentFromTarFile(infile, fp, extradata=[], jsondata={}, com
64026399
fcontents.seek(0, 0)
64036400
ftypehex = format(ftype, 'x').lower()
64046401
tmpoutlist = [ftypehex, fencoding, fcencoding, fname, flinkname, fsize, fblksize, fblocks, fflags, fatime, fmtime, fctime, fbtime, fmode, fwinattributes, fcompression,
6405-
fcsize, fuid, funame, fgid, fgname, fcurfid, fcurinode, flinkcount, fdev, fdev_minor, fdev_major, "+"+str(len(formatspecs['format_delimiter']))]
6402+
fcsize, fuid, funame, fgid, fgname, fcurfid, fcurinode, flinkcount, fdev, frdev, "+"+str(len(formatspecs['format_delimiter']))]
64066403
AppendFileHeaderWithContent(
64076404
fp, tmpoutlist, extradata, jsondata, fcontents.read(), [checksumtype[2], checksumtype[3], checksumtype[4]], formatspecs)
64086405
try:
@@ -6493,8 +6490,7 @@ def AppendFilesWithContentFromZipFile(infile, fp, extradata=[], jsondata={}, com
64936490
fcurinode = format(int(curfid), 'x').lower()
64946491
curfid = curfid + 1
64956492
fdev = format(int(0), 'x').lower()
6496-
fdev_minor = format(int(0), 'x').lower()
6497-
fdev_major = format(int(0), 'x').lower()
6493+
frdev = format(int(0), 'x').lower()
64986494
if(ftype == 5):
64996495
fsize = format(int("0"), 'x').lower()
65006496
elif(ftype == 0):
@@ -6625,7 +6621,7 @@ def AppendFilesWithContentFromZipFile(infile, fp, extradata=[], jsondata={}, com
66256621
fcontents.seek(0, 0)
66266622
ftypehex = format(ftype, 'x').lower()
66276623
tmpoutlist = [ftypehex, fencoding, fcencoding, fname, flinkname, fsize, fblksize, fblocks, fflags, fatime, fmtime, fctime, fbtime, fmode, fwinattributes, fcompression,
6628-
fcsize, fuid, funame, fgid, fgname, fcurfid, fcurinode, flinkcount, fdev, fdev_minor, fdev_major, "+"+str(len(formatspecs['format_delimiter']))]
6624+
fcsize, fuid, funame, fgid, fgname, fcurfid, fcurinode, flinkcount, fdev, frdev, "+"+str(len(formatspecs['format_delimiter']))]
66296625
AppendFileHeaderWithContent(
66306626
fp, tmpoutlist, extradata, jsondata, fcontents.read(), [checksumtype[2], checksumtype[3], checksumtype[4]], formatspecs)
66316627
try:
@@ -6741,8 +6737,7 @@ def AppendFilesWithContentFromRarFile(infile, fp, extradata=[], jsondata={}, com
67416737
fcurinode = format(int(curfid), 'x').lower()
67426738
curfid = curfid + 1
67436739
fdev = format(int(0), 'x').lower()
6744-
fdev_minor = format(int(0), 'x').lower()
6745-
fdev_major = format(int(0), 'x').lower()
6740+
frdev = format(int(0), 'x').lower()
67466741
if(ftype == 5):
67476742
fsize = format(int("0"), 'x').lower()
67486743
elif(ftype == 0):
@@ -6867,7 +6862,7 @@ def AppendFilesWithContentFromRarFile(infile, fp, extradata=[], jsondata={}, com
68676862
fcontents.seek(0, 0)
68686863
ftypehex = format(ftype, 'x').lower()
68696864
tmpoutlist = [ftypehex, fencoding, fcencoding, fname, flinkname, fsize, fblksize, fblocks, fflags, fatime, fmtime, fctime, fbtime, fmode, fwinattributes, fcompression,
6870-
fcsize, fuid, funame, fgid, fgname, fcurfid, fcurinode, flinkcount, fdev, fdev_minor, fdev_major, "+"+str(len(formatspecs['format_delimiter']))]
6865+
fcsize, fuid, funame, fgid, fgname, fcurfid, fcurinode, flinkcount, fdev, frdev, "+"+str(len(formatspecs['format_delimiter']))]
68716866
AppendFileHeaderWithContent(
68726867
fp, tmpoutlist, extradata, jsondata, fcontents.read(), [checksumtype[2], checksumtype[3], checksumtype[4]], formatspecs)
68736868
try:
@@ -6948,8 +6943,7 @@ def AppendFilesWithContentFromSevenZipFile(infile, fp, extradata=[], jsondata={}
69486943
fcurinode = format(int(curfid), 'x').lower()
69496944
curfid = curfid + 1
69506945
fdev = format(int(0), 'x').lower()
6951-
fdev_minor = format(int(0), 'x').lower()
6952-
fdev_major = format(int(0), 'x').lower()
6946+
frdev = format(int(0), 'x').lower()
69536947
if(ftype == 5):
69546948
fsize = format(int("0"), 'x').lower()
69556949
fatime = format(int(member.creationtime.timestamp()), 'x').lower()
@@ -7049,7 +7043,7 @@ def AppendFilesWithContentFromSevenZipFile(infile, fp, extradata=[], jsondata={}
70497043
fcontents.seek(0, 0)
70507044
ftypehex = format(ftype, 'x').lower()
70517045
tmpoutlist = [ftypehex, fencoding, fcencoding, fname, flinkname, fsize, fblksize, fblocks, fflags, fatime, fmtime, fctime, fbtime, fmode, fwinattributes, fcompression,
7052-
fcsize, fuid, funame, fgid, fgname, fcurfid, fcurinode, flinkcount, fdev, fdev_minor, fdev_major, "+"+str(len(formatspecs['format_delimiter']))]
7046+
fcsize, fuid, funame, fgid, fgname, fcurfid, fcurinode, flinkcount, fdev, frdev, "+"+str(len(formatspecs['format_delimiter']))]
70537047
AppendFileHeaderWithContent(
70547048
fp, tmpoutlist, extradata, jsondata, fcontents.read(), [checksumtype[2], checksumtype[3], checksumtype[4]], formatspecs)
70557049
try:
@@ -7110,16 +7104,15 @@ def AppendListsWithContent(inlist, fp, dirlistfromtxt=False, extradata=[], jsond
71107104
finode = format(curfname[22], 'x').lower()
71117105
flinkcount = format(curfname[23], 'x').lower()
71127106
fdev = format(curfname[24], 'x').lower()
7113-
fdev_minor = format(curfname[25], 'x').lower()
7114-
fdev_major = format(curfname[26], 'x').lower()
7115-
fseeknextfile = curfname[27]
7116-
extradata = curfname[28]
7117-
fheaderchecksumtype = curfname[29]
7118-
fcontentchecksumtype = curfname[30]
7119-
fcontents = curfname[31]
7107+
frdev = format(curfname[25], 'x').lower()
7108+
fseeknextfile = curfname[26]
7109+
extradata = curfname[27]
7110+
fheaderchecksumtype = curfname[28]
7111+
fcontentchecksumtype = curfname[29]
7112+
fcontents = curfname[30]
71207113
fencoding = GetFileEncoding(fcontents, 0, False)[0]
71217114
tmpoutlist = [ftype, fencoding, fcencoding, fname, flinkname, fsize, fblksize, fblocks, fflags, fatime, fmtime, fctime, fbtime, fmode, fwinattributes, fcompression, fcsize,
7122-
fuid, funame, fgid, fgname, fid, finode, flinkcount, fdev, fdev_minor, fdev_major, fseeknextfile]
7115+
fuid, funame, fgid, fgname, fid, finode, flinkcount, fdev, frdev, fseeknextfile]
71237116
fcontents.seek(0, 0)
71247117
AppendFileHeaderWithContent(
71257118
fp, tmpoutlist, extradata, jsondata, fcontents.read(), [checksumtype[2], checksumtype[3], checksumtype[4]], formatspecs)
@@ -9737,10 +9730,10 @@ def ArchiveFileValidate(infile, fmttype="auto", filestart=0,
97379730
outfcsize = int(inheaderdata[18], 16)
97389731
fid = int(inheaderdata[23], 16)
97399732
finode = int(inheaderdata[24], 16)
9740-
outfseeknextfile = inheaderdata[29]
9741-
outfjsonsize = int(inheaderdata[32], 16)
9742-
outfjsonchecksumtype = inheaderdata[33]
9743-
outfjsonchecksum = inheaderdata[34]
9733+
outfseeknextfile = inheaderdata[28]
9734+
outfjsonsize = int(inheaderdata[31], 16)
9735+
outfjsonchecksumtype = inheaderdata[32]
9736+
outfjsonchecksum = inheaderdata[33]
97449737
outfhend = fp.tell() - 1 # (kept for parity; not used)
97459738
outfjstart = fp.tell()
97469739
# Read JSON bytes; compute checksum on bytes for robustness
@@ -9753,9 +9746,9 @@ def ArchiveFileValidate(infile, fmttype="auto", filestart=0,
97539746
outfjend = fp.tell()
97549747
fp.seek(len(formatspecs['format_delimiter']), 1)
97559748
injsonfcs = GetFileChecksum(outfprejsoncontent_bytes, outfjsonchecksumtype, True, formatspecs)
9756-
outfextrafields = int(inheaderdata[36], 16)
9749+
outfextrafields = int(inheaderdata[35], 16)
97579750
extrafieldslist = []
9758-
extrastart = 37
9751+
extrastart = 36
97599752
extraend = extrastart + outfextrafields
97609753
outfcs = inheaderdata[-2].lower()
97619754
outfccs = inheaderdata[-1].lower()

0 commit comments

Comments
 (0)