From: Max Kellermann Date: Sun, 21 Sep 2008 20:44:04 +0000 (+0200) Subject: screen_artist: check if anything is selected X-Git-Tag: v0.12_alpha1~200 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=c239d890383d54d717da16a19b7977bf31dfc9b1;p=ncmpc.git 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. --- diff --git a/src/screen_artist.c b/src/screen_artist.c index 71be6f4..2f97c72 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... */ }