diff --git a/engine/cover.go b/engine/cover.go index 9c6c04a5a..41250cb95 100644 --- a/engine/cover.go +++ b/engine/cover.go @@ -2,6 +2,7 @@ package engine import ( "bytes" + "errors" "image" _ "image/gif" "image/jpeg" @@ -100,5 +101,9 @@ func readFromTag(path string) (io.Reader, error) { return nil, err } - return bytes.NewReader(m.Picture().Data), nil + picture := m.Picture() + if picture == nil { + return nil, errors.New("error extracting art from file " + path) + } + return bytes.NewReader(picture.Data), nil } diff --git a/server/subsonic/media_retrieval.go b/server/subsonic/media_retrieval.go index fb8146d35..45796674b 100644 --- a/server/subsonic/media_retrieval.go +++ b/server/subsonic/media_retrieval.go @@ -43,10 +43,10 @@ func (c *MediaRetrievalController) GetCoverArt(w http.ResponseWriter, r *http.Re switch { case err == model.ErrNotFound: - log.Error(r, err.Error(), "id", id) + log.Error(r, "Couldn't find coverArt", "id", id, err) return nil, NewError(responses.ErrorDataNotFound, "Cover not found") case err != nil: - log.Error(r, err) + log.Error(r, "Error retrieving coverArt", "id", id, err) return nil, NewError(responses.ErrorGeneric, "Internal Error") }