Changelog
+Daniel Stenberg (18 Oct 2009)
+- Kevin Baughman found a double close() problem with libcurl-NSS, as when
+ libcurl called NSS to close the SSL "session" it also closed the actual
+ socket.
+
Yang Tse (17 Oct 2009)
- Bug report #2866724 indicated
(http://curl.haxx.se/bug/view.cgi?id=2866724) that curl on Windows failed
o don't shrink SO_SNDBUF on windows for those who have it set large already
o connect next bug
o invalid file name characters handling on Windows
+ o double close() on the primary socket with libcurl-NSS
This release includes the following known bugs:
Michal Marek, Eric Wong, Guenter Knauf, Peter Sylvester, Daniel Johnson,
Claes Jakobsson, Sven Anders, Chris Mumford, John P. McCaskey,
Constantine Sapuntzakis, Michael Stillwell, Tom Mueller, Dan Fandrich,
+ Kevin Baughman
Thanks! (and sorry if I forgot to mention someone)
if(connssl->handle) {
PR_Close(connssl->handle);
+
+ /* NSS closes the socket we previously handed to it, so we must mark it
+ as closed to avoid double close */
+ conn->sock[sockindex] = CURL_SOCKET_BAD;
if(connssl->client_nickname != NULL) {
free(connssl->client_nickname);
connssl->client_nickname = NULL;
}
-#ifdef HAVE_PK11_CREATEGENERICOBJECT
+#ifdef HAVE_PK11_CREATEGENERICOBJECT
if(connssl->key)
(void)PK11_DestroyGenericObject(connssl->key);
if(connssl->cacert[1])
connssl->data = data;
-#ifdef HAVE_PK11_CREATEGENERICOBJECT
+#ifdef HAVE_PK11_CREATEGENERICOBJECT
connssl->cacert[0] = NULL;
connssl->cacert[1] = NULL;
connssl->key = NULL;