10.06.2013 17:19, Richard W.M. Jones wrote: > From: "Richard W.M. Jones" <rjo...@redhat.com> > > (Found by Kamil Dudka) > > Signed-off-by: Richard W.M. Jones <rjo...@redhat.com> > --- > block/curl.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/block/curl.c b/block/curl.c > index b634ccf..bf31efe 100644 > --- a/block/curl.c > +++ b/block/curl.c > @@ -453,7 +453,6 @@ static int curl_open(BlockDriverState *bs, QDict > *options, int flags) > goto out; > curl_easy_getinfo(state->curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD, &d); > curl_easy_setopt(state->curl, CURLOPT_WRITEFUNCTION, (void > *)curl_read_cb); > - curl_easy_setopt(state->curl, CURLOPT_NOBODY, 0); > if (d) > s->len = (size_t)d; > else if(!s->len)
Adding a bit more context: curl_easy_setopt(state->curl, CURLOPT_NOBODY, 1); curl_easy_setopt(state->curl, CURLOPT_WRITEFUNCTION, (void *)curl_size_cb); if (curl_easy_perform(state->curl)) goto out; curl_easy_getinfo(state->curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD, &d); curl_easy_setopt(state->curl, CURLOPT_WRITEFUNCTION, (void *)curl_read_cb); =>> curl_easy_setopt(state->curl, CURLOPT_NOBODY, 0); if (d) s->len = (size_t)d; else if(!s->len) goto out; DPRINTF("CURL: Size = %zd\n", s->len); curl_clean_state(state); curl_easy_cleanup(state->curl); state->curl = NULL; So indeed, the curl object is being removed here a few lines down the code. But it looks like the previous call to curl_easy_setopt, to set WRITEFUNCTION, is also not very useful. Should we probably want to remove that too, or don't remove either of these? Thanks, /mjt