From 4efc0ae24910f0fe317b1adf0417a890b1e91db0 Mon Sep 17 00:00:00 2001 From: Felicitas Pojtinger Date: Sat, 18 Dec 2021 20:57:30 +0100 Subject: [PATCH] fix: Close files immediately in archive cmd --- pkg/operations/archive.go | 11 ++++++++++- pkg/operations/update.go | 11 ++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/pkg/operations/archive.go b/pkg/operations/archive.go index 1c8c53e..278b69a 100644 --- a/pkg/operations/archive.go +++ b/pkg/operations/archive.go @@ -105,7 +105,6 @@ func (o *Operations) Archive( if err != nil { return []*tar.Header{}, err } - defer f.Close() signer, sign, err := signature.Sign(f, writer.DriveIsRegular, o.pipes.Signature, o.crypto.Identity) if err != nil { @@ -186,6 +185,12 @@ func (o *Operations) Archive( dirty = true if !file.Info.Mode().IsRegular() { + if f != nil { + if err := f.Close(); err != nil { + return []*tar.Header{}, err + } + } + continue } @@ -232,6 +237,10 @@ func (o *Operations) Archive( if err := encryptor.Close(); err != nil { return []*tar.Header{}, err } + + if err := f.Close(); err != nil { + return []*tar.Header{}, err + } } if err := cleanup(&dirty); err != nil { diff --git a/pkg/operations/update.go b/pkg/operations/update.go index 50e7a7f..9d3f221 100644 --- a/pkg/operations/update.go +++ b/pkg/operations/update.go @@ -101,7 +101,6 @@ func (o *Operations) Update( if err != nil { return []*tar.Header{}, err } - defer f.Close() signer, sign, err := signature.Sign(f, writer.DriveIsRegular, o.pipes.Signature, o.crypto.Identity) if err != nil { @@ -185,6 +184,12 @@ func (o *Operations) Update( dirty = true if !file.Info.Mode().IsRegular() { + if f != nil { + if err := f.Close(); err != nil { + return []*tar.Header{}, err + } + } + continue } @@ -231,6 +236,10 @@ func (o *Operations) Update( if err := encryptor.Close(); err != nil { return []*tar.Header{}, err } + + if err := f.Close(); err != nil { + return []*tar.Header{}, err + } } else { hdr.Size = 0 // Don't try to seek after the record