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
+10 -5
View File
@@ -185,21 +185,26 @@ 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)
} }