On Tue, Nov 24, 2009 at 11:47:30AM -0800, Dantzler, DeWayne C wrote: > > I'm not calling curl_global_init()/curl_global_cleanup() more than > once. I'm calling them only once. Xerces is a 3rd party library and I > have no access to the source or know how they are using curl in the > their library. This is a large C++ application and I'm using curl in > only one class. In my ctor, I call curl_global_init() first then make > a call to curl_easy_init(). According to the curl documentation, if > you call curl_global_init(), you should call curl_global_cleanup(). > Likewise it says if you call curl_easy_init(), then you should call > curl_easy_cleanup(), but when I do this the application crashes with a > SIGSEGV, Segmentation fault.
It's unusual to only have one instance of a class, which is why I also wondered if curl_global_init() / curl_global_cleanup() was getting invoked more than once per program execution. > The call stack shows: > Results:Program received signal SIGSEGV, Segmentation fault. > ================================================= > #0 0x63912920 in Curl_cookie_loadfiles+0x9c () > #1 0x63933c74 in flush_cookies+0x8c () > #2 0x639341ac in Curl_close+0x2ac > #3 0x639624e8 in curl_easy_cleanup+0x3c () Regardless, this stack is occuring in every instance where you call curl_easy_cleanup(), irrespective of the order of your easy_cleanup/global_cleanup calls. If I had to hazard a guess, there's a NULL pointer de-reference while traversing the list in cookie_loadfiles. I would work backwards and see if removing any of the CURLOPT_COOKIE* options eliminates the problem. If so, figure out what combination of options is causing the problem, write a small test case, and send it to the list. This will make it easy for people to help you debug. Good Luck, -j ------------------------------------------------------------------- List admin: http://cool.haxx.se/list/listinfo/curl-library Etiquette: http://curl.haxx.se/mail/etiquette.html
