diff options
author | Max Kellermann <max@duempel.org> | 2009-01-15 16:12:44 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2009-01-15 16:16:57 +0100 |
commit | a7461dc27d697489b7608b020788c251b992b6c3 (patch) | |
tree | 5459329030798ef4f2b80cf62bbf091128c00568 | |
parent | f1790fc8bf1fe46f977b6ecad0e1cd03b7edde82 (diff) | |
download | mpd-a7461dc27d697489b7608b020788c251b992b6c3.tar.gz mpd-a7461dc27d697489b7608b020788c251b992b6c3.tar.xz mpd-a7461dc27d697489b7608b020788c251b992b6c3.zip |
input_curl: don't call input_curl_select() when already at EOF
Calling input_curl_select() after EOF has been reached causes an
assertion failure. This can happen if the HTTP response is empty.
Check c->eof before calling input_curl_select().
Diffstat (limited to '')
-rw-r--r-- | src/input_curl.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/input_curl.c b/src/input_curl.c index afa85eb36..84311d142 100644 --- a/src/input_curl.c +++ b/src/input_curl.c @@ -225,6 +225,8 @@ input_curl_select(struct input_curl *c) .tv_usec = 0, }; + assert(!c->eof); + FD_ZERO(&rfds); FD_ZERO(&wfds); FD_ZERO(&efds); @@ -478,7 +480,7 @@ input_curl_buffer(struct input_stream *is) c->buffered = false; - if (!is->ready) + if (!is->ready && !c->eof) /* not ready yet means the caller is waiting in a busy loop; relax that by calling select() on the socket */ |