From d718ab6edf2d38efd6100f17dcb68c43d9884432 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 25 Jul 2023 10:06:59 +0530 Subject: [PATCH] cleanup close file error handling --- kittens/transfer/receive.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/kittens/transfer/receive.go b/kittens/transfer/receive.go index dfd9904e3..2591549c4 100644 --- a/kittens/transfer/receive.go +++ b/kittens/transfer/receive.go @@ -1059,6 +1059,12 @@ func receive_loop(opts *Options, spec []string, dest string) (err error, rc int) } err = lp.Run() + defer func() { + for _, f := range handler.manager.files { + f.close() + } + }() + if err != nil { return err, 1 } @@ -1072,8 +1078,10 @@ func receive_loop(opts *Options, spec []string, dest string) (err error, rc int) } var tsf, dsz, ssz int64 for _, f := range handler.manager.files { - if err = f.close(); err != nil { - return err, 1 + if rc == 0 { // no error has yet occurred report errors closing files + if cerr := f.close(); cerr != nil { + return cerr, 1 + } } if f.expect_diff { tsf += f.expected_size