Patchwork [PULL,26/31] curl: Fix return from curl_read_cb with invalid state

login
register
mail settings
Submitter Kevin Wolf
Date April 30, 2014, 6:23 p.m.
Message ID <1398882243-14783-27-git-send-email-kwolf@redhat.com>
Download mbox | patch
Permalink /patch/344276/
State New
Headers show

Comments

Kevin Wolf - April 30, 2014, 6:23 p.m.
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>
---
 block/curl.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Patch

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;
 }