aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2009-10-13 16:24:28 +0200
committerMax Kellermann <max@duempel.org>2009-10-13 16:24:28 +0200
commit6037beabe1b704093620704d279cda43d4874c4e (patch)
tree0ba157650434166157c9918bc486a665c60c71bd
parent9a3f5ff977951781453fbe1e597dbd6eb5f7494a (diff)
downloadmpd-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--NEWS1
-rw-r--r--src/input/curl_input_plugin.c2
2 files changed, 2 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index 08057a86e..ec6cbe663 100644
--- a/NEWS
+++ b/NEWS
@@ -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);
}
/**