From c239d890383d54d717da16a19b7977bf31dfc9b1 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Sun, 21 Sep 2008 22:44:04 +0200 Subject: screen_artist: check if anything is selected Don't try to call add_query() with no valid selection, this causes a segfault. This usually happens when ncmpc isn't connected. --- src/screen_artist.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/screen_artist.c b/src/screen_artist.c index 71be6f408..2f97c723a 100644 --- a/src/screen_artist.c +++ b/src/screen_artist.c @@ -272,6 +272,8 @@ add_query(mpdclient_t *c, int table, char *_filter) char *str; mpdclient_filelist_t *addlist; + assert(filter != NULL); + str = utf8_to_locale(_filter); if (table== MPD_TABLE_ALBUM) screen_status_printf("Adding album %s...", str); @@ -381,6 +383,9 @@ artist_cmd(screen_t *screen, mpdclient_t *c, command_t cmd) case LIST_ARTISTS: selected = g_list_nth_data(metalist, browser.lw->selected); + if (selected == NULL) + return 1; + add_query(c, MPD_TABLE_ARTIST, selected); cmd = CMD_LIST_NEXT; /* continue and select next item... */ break; @@ -392,6 +397,9 @@ artist_cmd(screen_t *screen, mpdclient_t *c, command_t cmd) else if (browser.lw->selected > 0) { selected = g_list_nth_data(metalist, browser.lw->selected); + if (selected == NULL) + return 1; + add_query(c, MPD_TABLE_ALBUM, selected); cmd = CMD_LIST_NEXT; /* continue and select next item... */ } -- cgit v1.2.3