From 5c7b7a04e1c0c6517b53def628df5a738022ab39 Mon Sep 17 00:00:00 2001 From: unK Date: Sat, 4 Oct 2008 23:18:50 +0200 Subject: [PATCH] add some checks to prevent ncmpcpp from segfaulting with mpd from git --- src/ncmpcpp.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/ncmpcpp.cpp b/src/ncmpcpp.cpp index 343d87cf..2ae75937 100644 --- a/src/ncmpcpp.cpp +++ b/src/ncmpcpp.cpp @@ -447,7 +447,7 @@ int main(int argc, char *argv[]) sort(list.begin(), list.end(), CaseInsensitiveSorting()); for (TagList::const_iterator it = list.begin(); it != list.end(); it++) { - if (mLibArtists->Empty() || mLibArtists->Back() != *it) + if ((mLibArtists->Empty() || mLibArtists->Back() != *it) && !it->empty()) mLibArtists->AddOption(*it); } mLibArtists->Window::Clear(); @@ -476,7 +476,8 @@ int main(int argc, char *argv[]) Mpd->AddSearch(Config.media_lib_primary_tag, mLibArtists->GetOption()); Mpd->AddSearch(MPD_TAG_ITEM_ALBUM, *it); Mpd->CommitSearch(l); - maplist[DisplaySong(*l[0], &Config.media_lib_album_format)] = *it; + if (!l.empty() && l[0]->GetAlbum() != UNKNOWN_ALBUM) + maplist[DisplaySong(*l[0], &Config.media_lib_album_format)] = *it; FreeSongList(l); } for (std::map::const_iterator it = maplist.begin(); it != maplist.end(); it++) @@ -611,7 +612,8 @@ int main(int argc, char *argv[]) Mpd->StartSearch(1); Mpd->AddSearch(MPD_TAG_ITEM_ALBUM, *it); Mpd->CommitSearch(l); - maplist[DisplaySong(*l[0], &Config.tag_editor_album_format)] = *it; + if (!l.empty()) + maplist[DisplaySong(*l[0], &Config.tag_editor_album_format)] = *it; FreeSongList(l); } for (std::map::const_iterator it = maplist.begin(); it != maplist.end(); it++)