From 331b54ab7f261fd24844f7345aaaad03ef474e7e Mon Sep 17 00:00:00 2001
From: Richard Jones <rjones@redhat.com>
Date: Thu, 11 Jun 2015 11:40:11 +0200
Subject: [PATCH 11/30] curl: Fix return from curl_read_cb with invalid state
Message-id: <1434022828-13037-5-git-send-email-rjones@redhat.com>
Patchwork-id: 65839
O-Subject: [RHEL-7.2 qemu-kvm v3 PATCH 04/21] curl: Fix return from curl_read_cb with invalid state
Bugzilla: 1226684
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
From: Matthew Booth <mbooth@redhat.com>
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>
Upstream-status: 38bbc0a580f9f10570b1d1b5d3e92f0e6feb2970
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
---
block/curl.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/block/curl.c b/block/curl.c
index d399e3a..8c707e1 100644
--- a/block/curl.c
+++ b/block/curl.c
@@ -132,7 +132,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 */
@@ -157,7 +157,6 @@ static size_t curl_read_cb(void *ptr, size_t size, size_t nmemb, void *opaque)
}
}
-read_end:
return realsize;
}
--
1.8.3.1