From ca8a69b1b69079f64379e7890b606d772b510d28 Mon Sep 17 00:00:00 2001 From: Filippo Valsorda Date: Tue, 23 Dec 2025 15:21:31 +0100 Subject: [PATCH] age: improve error on empty files Fixes #416 --- cmd/age/testdata/x25519.txt | 5 +++++ internal/format/format.go | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/cmd/age/testdata/x25519.txt b/cmd/age/testdata/x25519.txt index 0142216..e38a229 100644 --- a/cmd/age/testdata/x25519.txt +++ b/cmd/age/testdata/x25519.txt @@ -15,6 +15,11 @@ age -r age12phkzssndd5axajas2h74vtge62c86xjhd6u9anyanqhzvdg6sps0xthgl -o test.ag ! age -d -i key.txt test.age stderr 'no identity matched any of the recipients' +# decrypt an empty file +! age -d -i key.txt empty +stderr empty + +-- empty -- -- input -- test -- key.txt -- diff --git a/internal/format/format.go b/internal/format/format.go index 0f22e6f..36eaad0 100644 --- a/internal/format/format.go +++ b/internal/format/format.go @@ -239,7 +239,9 @@ func Parse(input io.Reader) (*Header, io.Reader, error) { rr := bufio.NewReader(input) line, err := rr.ReadString('\n') - if err != nil { + if err == io.EOF { + return nil, nil, errorf("file is empty") + } else if err != nil { return nil, nil, errorf("failed to read intro: %w", err) } if line != intro {