From 9766aedf7abac21d1d666205cfc10eb56e21cb08 Mon Sep 17 00:00:00 2001 From: Drew Weymouth Date: Sun, 2 Jun 2024 14:55:03 -0700 Subject: [PATCH] fix possible crash when switching servers with pending image fetches --- backend/imagemanager.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/backend/imagemanager.go b/backend/imagemanager.go index e9050ce..b39c7c0 100644 --- a/backend/imagemanager.go +++ b/backend/imagemanager.go @@ -249,7 +249,11 @@ func (i *ImageManager) fetchAndCacheCoverFromServer(ctx context.Context, coverID case <-ctx.Done(): return nil, context.Canceled case i.serverFetchSema <- struct{}{}: // acquire - img, err := i.s.Server.GetCoverArt(coverID, coverArtThumbnailSize) + server := i.s.Server + if server == nil { + return nil, errors.New("logged out") + } + img, err := server.GetCoverArt(coverID, coverArtThumbnailSize) <-i.serverFetchSema // release if err == nil { if i.ensureCoverCacheDir() != "" { @@ -277,7 +281,11 @@ func (i *ImageManager) getFullSizeCoverArtFromServer(ctx context.Context, coverI case <-ctx.Done(): return nil, context.Canceled case i.serverFetchSema <- struct{}{}: // acquire - im, err := i.s.Server.GetCoverArt(coverID, 0) + server := i.s.Server + if server == nil { + return nil, errors.New("logged out") + } + im, err := server.GetCoverArt(coverID, 0) <-i.serverFetchSema // release if err == nil { i.cachedFullSizeCover = im