diff --git a/backend/mem_backend.go b/backend/mem_backend.go index 21d78846b..e757566e6 100644 --- a/backend/mem_backend.go +++ b/backend/mem_backend.go @@ -125,17 +125,21 @@ func memCreate(be *MemoryBackend) (Blob, error) { return blob, nil } -// ReadCloser wraps a reader and adds a noop Close method. +// ReadCloser wraps a reader and adds a noop Close method if rd does not implement io.Closer. func ReadCloser(rd io.Reader) io.ReadCloser { return readCloser{rd} } -// readCloser wraps a reader and adds a noop Close method. +// readCloser wraps a reader and adds a noop Close method if rd does not implement io.Closer. type readCloser struct { io.Reader } func (rd readCloser) Close() error { + if r, ok := rd.Reader.(io.Closer); ok { + return r.Close() + } + return nil }