diff options
author | Max Kellermann <max@duempel.org> | 2009-10-13 16:24:28 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2009-10-13 16:24:28 +0200 |
commit | 6037beabe1b704093620704d279cda43d4874c4e (patch) | |
tree | 0ba157650434166157c9918bc486a665c60c71bd | |
parent | 9a3f5ff977951781453fbe1e597dbd6eb5f7494a (diff) | |
download | mpd-6037beabe1b704093620704d279cda43d4874c4e.tar.gz mpd-6037beabe1b704093620704d279cda43d4874c4e.tar.xz mpd-6037beabe1b704093620704d279cda43d4874c4e.zip |
input/curl: fixed endless loop during buffering
When the connection is lost while buffering, the CURL input plugin may
enter an endless loop, because it does not check the EOF condition.
This patch makes fill_buffer() return success only if there's at least
one buffer, which is enough of a check.x
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | src/input/curl_input_plugin.c | 2 |
2 files changed, 2 insertions, 1 deletions
@@ -1,6 +1,7 @@ ver 0.15.5 (2009/??/??) * input: - curl: don't abort if a packet has only metadata + - curl: fixed endless loop during buffering * tags: - riff, aiff: fixed "limited range" gcc warning * decoder_thread: change the fallback decoder name to "mad" diff --git a/src/input/curl_input_plugin.c b/src/input/curl_input_plugin.c index b83bcd918..95d269ce5 100644 --- a/src/input/curl_input_plugin.c +++ b/src/input/curl_input_plugin.c @@ -315,7 +315,7 @@ fill_buffer(struct input_stream *is) return false; } - return true; + return !g_queue_is_empty(c->buffers); } /** |