[bugfix] close files before error return (#3163)
* close files before error return * use defer statements * shuffle around some defers
This commit is contained in:
parent
0f734a2410
commit
e5e996b28a
|
@ -75,12 +75,14 @@ func terminateExif(outpath, inpath string, ext string) error {
|
|||
if err != nil {
|
||||
return gtserror.Newf("error opening input file %s: %w", inpath, err)
|
||||
}
|
||||
defer inFile.Close()
|
||||
|
||||
// Open output file at given path.
|
||||
outFile, err := os.Create(outpath)
|
||||
if err != nil {
|
||||
return gtserror.Newf("error opening output file %s: %w", outpath, err)
|
||||
}
|
||||
defer outFile.Close()
|
||||
|
||||
// Terminate EXIF data from 'inFile' -> 'outFile'.
|
||||
err = terminator.TerminateInto(outFile, inFile, ext)
|
||||
|
@ -88,9 +90,5 @@ func terminateExif(outpath, inpath string, ext string) error {
|
|||
return gtserror.Newf("error terminating exif data: %w", err)
|
||||
}
|
||||
|
||||
// Done with files.
|
||||
_ = inFile.Close()
|
||||
_ = outFile.Close()
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -120,15 +120,17 @@ func getMimeType(ext string) string {
|
|||
// chance that Linux's sendfile syscall can be utilised for optimal
|
||||
// draining of data source to temporary file storage.
|
||||
func drainToTmp(rc io.ReadCloser) (string, error) {
|
||||
tmp, err := os.CreateTemp(os.TempDir(), "gotosocial-*")
|
||||
defer rc.Close()
|
||||
|
||||
// Open new temporary file.
|
||||
tmp, err := os.CreateTemp(
|
||||
os.TempDir(),
|
||||
"gotosocial-*",
|
||||
)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
// Close readers
|
||||
// on func return.
|
||||
defer tmp.Close()
|
||||
defer rc.Close()
|
||||
|
||||
// Extract file path.
|
||||
path := tmp.Name()
|
||||
|
|
Loading…
Reference in New Issue