diff options
author | Matthew Booth <mbooth@redhat.com> | 2014-04-29 16:03:27 +0100 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2014-04-30 16:34:08 +0200 |
commit | 38bbc0a580f9f10570b1d1b5d3e92f0e6feb2970 (patch) | |
tree | 831c492829a2f909027240233f8de43d40bb6556 /block/curl.c | |
parent | 9e550b326076caf4a1756b77eee95ad60b4adc27 (diff) | |
download | qemu-38bbc0a580f9f10570b1d1b5d3e92f0e6feb2970.zip qemu-38bbc0a580f9f10570b1d1b5d3e92f0e6feb2970.tar.gz qemu-38bbc0a580f9f10570b1d1b5d3e92f0e6feb2970.tar.bz2 |
curl: Fix return from curl_read_cb with invalid state
A curl write callback is supposed to return the number of bytes it
handled. curl_read_cb would have erroneously reported it had handled
all bytes in the event that the internal curl state was invalid.
Signed-off-by: Matthew Booth <mbooth@redhat.com>
Tested-by: Richard W.M. Jones <rjones@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'block/curl.c')
-rw-r--r-- | block/curl.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/block/curl.c b/block/curl.c index e97f449..26c9cac 100644 --- a/block/curl.c +++ b/block/curl.c @@ -155,7 +155,7 @@ static size_t curl_read_cb(void *ptr, size_t size, size_t nmemb, void *opaque) DPRINTF("CURL: Just reading %zd bytes\n", realsize); if (!s || !s->orig_buf) - goto read_end; + return 0; if (s->buf_off >= s->buf_len) { /* buffer full, read nothing */ @@ -180,7 +180,6 @@ static size_t curl_read_cb(void *ptr, size_t size, size_t nmemb, void *opaque) } } -read_end: return realsize; } |