diff options
author | Nguyễn Gia Phong <mcsinyx@disroot.org> | 2022-01-20 01:10:08 +0700 |
---|---|---|
committer | Robin Jarry <robin@jarry.cc> | 2022-01-19 20:18:00 +0100 |
commit | 904ffacb0e521218ba1f41e2e5c26d9ac41c9969 (patch) | |
tree | 4bb0dbe000b1241586f7fb0635ee076f70c22fe2 /worker/notmuch/message.go | |
parent | beae17a6da37402d1c69dc76b476f55cbae982b8 (diff) | |
download | aerc-904ffacb0e521218ba1f41e2e5c26d9ac41c9969.zip |
maildir,notmuch: avoid leaking open files
Previously, Message.NewReader returned the wrapped buffered reader
without a reference to the opened file, so the files descriptors
were left unclosed after reading. Now, the file reader is returned
directly and closed on the call site. Buffering is not needed here
because it is an implementation detail of go-message.
Fixes: https://todo.sr.ht/~rjarry/aerc/9
Diffstat (limited to 'worker/notmuch/message.go')
-rw-r--r-- | worker/notmuch/message.go | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/worker/notmuch/message.go b/worker/notmuch/message.go index c95c9ba..e39fb17 100644 --- a/worker/notmuch/message.go +++ b/worker/notmuch/message.go @@ -4,7 +4,6 @@ package notmuch import ( - "bufio" "fmt" "io" "os" @@ -23,16 +22,12 @@ type Message struct { } // NewReader returns a reader for a message -func (m *Message) NewReader() (io.Reader, error) { +func (m *Message) NewReader() (io.ReadCloser, error) { name, err := m.Filename() if err != nil { return nil, err } - f, err := os.Open(name) - if err != nil { - return nil, err - } - return bufio.NewReader(f), nil + return os.Open(name) } // MessageInfo populates a models.MessageInfo struct for the message. |