@@ -9714,6 +9714,7 @@ def CatFileValidate(infile, fmttype="auto", filestart=0, formatspecs=__file_form
97149714 return False
97159715 if(formdel != formatspecs['format_delimiter']):
97169716 return False
9717+ headeroffset = fp.tell()
97179718 if(__use_new_style__):
97189719 inheader = ReadFileHeaderDataBySize(fp, formatspecs['format_delimiter'])
97199720 else:
@@ -9732,24 +9733,9 @@ def CatFileValidate(infile, fmttype="auto", filestart=0, formatspecs=__file_form
97329733 fjsonsize = int(inheader[10], 16)
97339734 fjsonchecksumtype = inheader[11]
97349735 fjsonchecksum = inheader[12]
9736+ headerjsonoffset = fp.tell()
97359737 fprejsoncontent = fp.read(fjsonsize)
97369738 jsonfcs = GetFileChecksum(fprejsoncontent, fjsonchecksumtype, True, formatspecs, saltkey)
9737- if(fjsonsize > 0):
9738- if(CheckChecksums(jsonfcs, fjsonchecksum)):
9739- if(verbose):
9740- VerbosePrintOut("File JSON Data Checksum Passed at offset " + str(outfjstart))
9741- VerbosePrintOut("'" + outfjsonchecksum + "' == " + "'" + injsonfcs + "'")
9742- else:
9743- valid_archive = False
9744- invalid_archive = True
9745- if(verbose):
9746- VerbosePrintOut("File JSON Data Checksum Error at offset " + str(outfjstart))
9747- VerbosePrintOut("'" + outfjsonchecksum + "' != " + "'" + injsonfcs + "'")
9748- if(not CheckChecksums(fjsonchecksum, jsonfcs) and not skipchecksum):
9749- VerbosePrintOut("File JSON Data Checksum Error with file " +
9750- fname + " at offset " + str(fheaderstart))
9751- VerbosePrintOut("'" + fjsonchecksum + "' != " + "'" + jsonfcs + "'")
9752- return False
97539739 # Next seek directive
97549740 if(re.findall(r"^\+([0-9]+)", outfseeknextfile)):
97559741 fseeknextasnum = int(outfseeknextfile.replace("+", ""))
@@ -9786,15 +9772,26 @@ def CatFileValidate(infile, fmttype="auto", filestart=0, formatspecs=__file_form
97869772 VerbosePrintOut("Number of Records " + str(fnumfiles))
97879773 if(headercheck):
97889774 if(verbose):
9789- VerbosePrintOut("File Header Checksum Passed at offset " + str(0 ))
9775+ VerbosePrintOut("File Header Checksum Passed at offset " + str(headeroffset ))
97909776 VerbosePrintOut("'" + fprechecksum + "' == " + "'" + newfcs + "'")
97919777 else:
97929778 # always flip flags, even when not verbose
97939779 valid_archive = False
97949780 invalid_archive = True
97959781 if(verbose):
9796- VerbosePrintOut("File Header Checksum Failed at offset " + str(0 ))
9782+ VerbosePrintOut("File Header Checksum Failed at offset " + str(headeroffset ))
97979783 VerbosePrintOut("'" + fprechecksum + "' != " + "'" + newfcs + "'")
9784+ if(fjsonsize > 0):
9785+ if(CheckChecksums(jsonfcs, fjsonchecksum)):
9786+ if(verbose):
9787+ VerbosePrintOut("File JSON Data Checksum Passed at offset " + str(headerjsonoffset))
9788+ VerbosePrintOut("'" + outfjsonchecksum + "' == " + "'" + injsonfcs + "'")
9789+ else:
9790+ valid_archive = False
9791+ invalid_archive = True
9792+ if(verbose):
9793+ VerbosePrintOut("File JSON Data Checksum Error at offset " + str(headerjsonoffset))
9794+ VerbosePrintOut("'" + outfjsonchecksum + "' != " + "'" + injsonfcs + "'")
97989795 if(verbose):
97999796 VerbosePrintOut("")
98009797 # Iterate either until EOF (seektoend) or fixed count
0 commit comments