From 7592462571d1a009ae5849a868d21e5f2a09be44 Mon Sep 17 00:00:00 2001 From: chme Date: Mon, 19 Oct 2015 21:33:43 +0200 Subject: [PATCH] [player] Fix segfault if reading from source failed for all queue items --- src/player.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/player.c b/src/player.c index 27d20780..271b5d9b 100644 --- a/src/player.c +++ b/src/player.c @@ -1512,7 +1512,7 @@ source_read(uint8_t *buf, int len, uint64_t rtptime) { ret = stream_read(cur_streaming, len - nbytes); } - else + else if (cur_playing) { // Reached end of playlist (cur_playing is NULL) send silence and source_check will abort playback if the last item was played DPRINTF(E_SPAM, L_PLAYER, "End of playlist reached, stream silence until playback of last item ends\n"); @@ -1521,6 +1521,11 @@ source_read(uint8_t *buf, int len, uint64_t rtptime) free(silence_buf); ret = len - nbytes; } + else + { + // If cur_streaming and cur_playing are NULL, source_read for all queue items failed. Playback will be aborted in the calling function + return -1; + } if (ret <= 0) {