From ff1b4ffb081cd5ff895ce967ae124653b21481e2 Mon Sep 17 00:00:00 2001 From: Filippo Valsorda Date: Fri, 23 Apr 2021 00:11:12 -0400 Subject: [PATCH] cmd/age,cmd/age-keygen: check Close() error on output files Fixes #81 --- cmd/age-keygen/keygen.go | 6 +++++- cmd/age/age.go | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/cmd/age-keygen/keygen.go b/cmd/age-keygen/keygen.go index f9de972..04cd272 100644 --- a/cmd/age-keygen/keygen.go +++ b/cmd/age-keygen/keygen.go @@ -94,7 +94,11 @@ func main() { if err != nil { log.Fatalf("Failed to open output file %q: %v", outFlag, err) } - defer f.Close() + defer func() { + if err := f.Close(); err != nil { + log.Fatalf("Failed to close output file %q: %v", outFlag, err) + } + }() out = f } diff --git a/cmd/age/age.go b/cmd/age/age.go index 6bd06ed..f6dcf7a 100644 --- a/cmd/age/age.go +++ b/cmd/age/age.go @@ -184,7 +184,11 @@ func main() { } if name := outFlag; name != "" && name != "-" { f := newLazyOpener(name) - defer f.Close() + defer func() { + if err := f.Close(); err != nil { + logFatalf("Error: failed to close output file %q: %v", name, err) + } + }() out = f } else if term.IsTerminal(int(os.Stdout.Fd())) { if name != "-" {