This commit is contained in:
Xpl0itU 2024-05-05 15:08:58 +02:00
parent f35714782e
commit 2222e9a2a5

View file

@ -469,12 +469,13 @@ func DecryptContents(path string, progressReporter ProgressReporter, deleteEncry
if err != nil { if err != nil {
return err return err
} }
defer fstEncFile.Close()
decryptedBuffer := bytes.Buffer{} decryptedBuffer := bytes.Buffer{}
if err := decryptContentToBuffer(fstEncFile, &decryptedBuffer, cipherHashTree, tmd.Contents[0]); err != nil { if err := decryptContentToBuffer(fstEncFile, &decryptedBuffer, cipherHashTree, tmd.Contents[0]); err != nil {
fstEncFile.Close()
return err return err
} }
fstEncFile.Close()
fst := FSTData{FSTReader: bytes.NewReader(bytes.Clone(decryptedBuffer.Bytes())), FSTEntries: make([]FEntry, 0), EntryCount: 0, Entries: 0, NamesOffset: 0} fst := FSTData{FSTReader: bytes.NewReader(bytes.Clone(decryptedBuffer.Bytes())), FSTEntries: make([]FEntry, 0), EntryCount: 0, Entries: 0, NamesOffset: 0}
parseFST(&fst) parseFST(&fst)
@ -521,12 +522,12 @@ func DecryptContents(path string, progressReporter ProgressReporter, deleteEncry
if err != nil { if err != nil {
return err return err
} }
defer srcFile.Close()
if tmdFlags&0x02 != 0 { if tmdFlags&0x02 != 0 {
err = extractFileHash(srcFile, 0, contentOffset, uint64(fst.FSTEntries[i].Length), outputPath, fst.FSTEntries[i].ContentID, cipherHashTree) err = extractFileHash(srcFile, 0, contentOffset, uint64(fst.FSTEntries[i].Length), outputPath, fst.FSTEntries[i].ContentID, cipherHashTree)
} else { } else {
err = extractFile(srcFile, 0, contentOffset, uint64(fst.FSTEntries[i].Length), outputPath, fst.FSTEntries[i].ContentID, cipherHashTree) err = extractFile(srcFile, 0, contentOffset, uint64(fst.FSTEntries[i].Length), outputPath, fst.FSTEntries[i].ContentID, cipherHashTree)
} }
srcFile.Close()
if err != nil { if err != nil {
return err return err
} }