Fix file handle management in tar extractors

Use defer outFile.Close() to avoid multiple close calls and ensure proper resource cleanup

Co-authored-by: Andrew Block <andy.block@gmail.com>
Signed-off-by: Scott Rigby <scott@r6by.com>
pull/10364/merge
Scott Rigby 1 week ago
parent fd41fdd9c9
commit d19130f69e

@ -256,11 +256,10 @@ func (g *TarGzExtractor) Extract(buffer *bytes.Buffer, targetDir string) error {
if err != nil {
return err
}
defer outFile.Close()
if _, err := io.Copy(outFile, tarReader); err != nil {
outFile.Close()
return err
}
outFile.Close()
// We don't want to process these extension header files.
case tar.TypeXGlobalHeader, tar.TypeXHeader:
continue

@ -200,11 +200,10 @@ func extractTar(r io.Reader, targetDir string) error {
if err != nil {
return err
}
defer outFile.Close()
if _, err := io.Copy(outFile, tarReader); err != nil {
outFile.Close()
return err
}
outFile.Close()
case tar.TypeXGlobalHeader, tar.TypeXHeader:
// Skip these
continue

Loading…
Cancel
Save