Re: [PATCH] Work around curl-gnutls not liking to be reinitialized

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Feb 08, 2008 at 09:53:47PM +0000, Johannes Schindelin wrote:
> Hi,
> 
> On Fri, 8 Feb 2008, Mike Hommey wrote:
> 
> > >  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.
> 
> Wow.  I hope you used "git bisect", in order to spare you unnecessary 
> work...

This was actually easy to spot without. I was pretty sure something
fishy was going on with the curl_global_cleanup code, so I followed it
up to Curl_gtls_cleanup and there it was just under my eyes. I only had
to use the annotate thingy in viewcvs (and leave out version 1.35 of the
file, that does whitespace changes only).

Mike
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux