fix potential crash in searching albums

This commit is contained in:
Drew Weymouth
2023-04-26 08:38:56 -07:00
parent 56b67097b9
commit 76386ad7ad
+11 -6
View File
@@ -185,20 +185,25 @@ func (s *searchIter) Next() *subsonic.AlbumID3 {
// add results from artists search // add results from artists search
for _, artist := range results.Artist { for _, artist := range results.Artist {
artist, err := s.s.GetArtist(artist.ID) artist, err := s.s.GetArtist(artist.ID)
if err != nil { if err != nil || artist == nil {
log.Printf("error fetching artist: %s", err.Error()) log.Printf("error fetching artist: %s", err.Error())
} else {
s.addNewAlbums(artist.Album)
} }
s.addNewAlbums(artist.Album)
} }
s.artistOffset += len(results.Artist) s.artistOffset += len(results.Artist)
// add results from songs search // add results from songs search
for _, song := range results.Song { for _, song := range results.Song {
album, err := s.s.GetAlbum(song.Parent) if song.AlbumID == "" {
if err != nil { continue
log.Printf("error fetching album: %s", err.Error()) }
album, err := s.s.GetAlbum(song.AlbumID)
if err != nil || album == nil {
log.Printf("error fetching album: %s", err.Error())
} else {
s.addNewAlbums([]*subsonic.AlbumID3{album})
} }
s.addNewAlbums([]*subsonic.AlbumID3{album})
} }
s.songOffset += len(results.Song) s.songOffset += len(results.Song)
} }