aboutsummaryrefslogtreecommitdiff
path: root/format/pack/ingest/temp.go
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-03-05 20:55:17 +0800
committerGravatar Runxi Yu2026-03-05 20:55:17 +0800
commit915fca6a9c2923a3bcf7a5a257e5832fab8cd432 (patch)
tree1726c92257263033da5cadb4a570c97b68332ee7 /format/pack/ingest/temp.go
parentlint: Exclude compress/{flate,internal} (diff)
signatureNo signature
*: Fix lint wsl_v5
Diffstat (limited to 'format/pack/ingest/temp.go')
-rw-r--r--format/pack/ingest/temp.go8
1 files changed, 8 insertions, 0 deletions
diff --git a/format/pack/ingest/temp.go b/format/pack/ingest/temp.go
index b8c947ec..d0297ace 100644
--- a/format/pack/ingest/temp.go
+++ b/format/pack/ingest/temp.go
@@ -24,6 +24,7 @@ func openTemporaryArtifacts(state *ingestState) error {
}
revName := ""
+
var revFile *os.File
if state.writeRev {
revName, revFile, err = createTempFile(state.destination, "tmp_rev_")
@@ -54,18 +55,23 @@ func closeTemporaryArtifacts(state *ingestState) error {
if err := state.packFile.Close(); err != nil && out == nil {
out = err
}
+
state.packFile = nil
}
+
if state.idxFile != nil {
if err := state.idxFile.Close(); err != nil && out == nil {
out = err
}
+
state.idxFile = nil
}
+
if state.revFile != nil {
if err := state.revFile.Close(); err != nil && out == nil {
out = err
}
+
state.revFile = nil
}
@@ -76,10 +82,12 @@ func closeTemporaryArtifacts(state *ingestState) error {
func createTempFile(root *os.Root, prefix string) (string, *os.File, error) {
for range 32 {
name := prefix + rand.Text()
+
file, err := root.OpenFile(name, os.O_CREATE|os.O_EXCL|os.O_RDWR, 0o644)
if err == nil {
return name, file, nil
}
+
if errors.Is(err, fs.ErrExist) {
continue
}