Skip to content

Commit

Permalink
fix: fixes Using the same file as input and output produces a corrupt…
Browse files Browse the repository at this point in the history
… result without notice. #491
  • Loading branch information
iFrozenPhoenix committed Sep 3, 2023
1 parent 6ad4560 commit a0054f9
Showing 1 changed file with 22 additions and 7 deletions.
29 changes: 22 additions & 7 deletions cmd/age/age.go
Original file line number Diff line number Diff line change
Expand Up @@ -246,13 +246,28 @@ func main() {
}
}
if name := outFlag; name != "" && name != "-" {
f := newLazyOpener(name)
defer func() {
if err := f.Close(); err != nil {
errorf("failed to close output file %q: %v", name, err)
}
}()
out = f
if name != flag.Arg(0) {
f := newLazyOpener(name)
defer func() {
if err := f.Close(); err != nil {
errorf("failed to close output file %q: %v", name, err)
}
}()
out = f
} else {
buf := &bytes.Buffer{}
defer func() {
f, err := os.Create(name)
if err != nil {
errorf("failed to create output file %q: %w", name, err)
}
io.Copy(f, buf)
if err := f.Close(); err != nil {
errorf("failed to close output file %q: %v", name, err)
}
}()
out = buf
}
} else if term.IsTerminal(int(os.Stdout.Fd())) {
if name != "-" {
if decryptFlag {
Expand Down

0 comments on commit a0054f9

Please sign in to comment.