Re: [PATCH] Work around curl-gnutls not liking to be reinitialized
- From
Mike Hommey <mh@glandium.org>
- Date
- Feb 8, 2008, 21:31 UTC
- Message-ID
- <20080208213148.GA2823@glandium.org>
- In-Reply-To
- <1202501335-28205-1-git-send-email-mh@glandium.org>
Show 23 quoted lines
> In the end, it was a bit of git's fault, but either curl or gnutls is the
> actual culprit. I've not looked into either code to find out who's
> responsible, but a very simplified testcase is as follows:
>
> #include <curl/curl.h>
> #include <curl/easy.h>
>
> int main(void) {
> CURL *easy = curl_easy_init();
> curl_easy_setopt(easy, CURLOPT_VERBOSE, 1);
> curl_easy_setopt(easy, CURLOPT_URL, "https://www.verisign.com/");
> curl_easy_perform(easy);
> curl_global_cleanup();
> easy = curl_easy_init();
> curl_easy_setopt(easy, CURLOPT_VERBOSE, 1);
> curl_easy_setopt(easy, CURLOPT_URL, "https://www.verisign.com/");
> curl_easy_perform(easy);
> }
>
> (build with gcc -o test test.c -lcurl)
> (note curl_easy_init does curl_global_init behind the curtains, even the
> second time. You can convince yourself by adding
> curl_global_init(CURL_GLOBAL_ALL);)And the winner is... curl ! The bug was introduced in this commit: http://cool.haxx.se/cvs.cgi/curl/lib/gtls.c.diff?r1=1.26&r2=1.27 Note how gtls_inited is not set back to FALSE in cleanup.
This ended up released in 7.16.3. I'm filing a bug.
Mike