diff options
author | Daniel Stenberg <daniel@haxx.se> | 2006-11-09 21:54:33 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2006-11-09 21:54:33 +0000 |
commit | 624745ab20a7826e18f300cc19ef496f0224dad0 (patch) | |
tree | 50c0d387ade37f25fa30c7ceb013c4faaa9f1150 | |
parent | 9354822e09ce11fce78a45a897fe2a184565a35e (diff) |
Dmitriy Sergeyev found a SIGSEGV with his test04.c example posted on 7 Nov
2006. It turned out we wrongly assumed that the connection cache was present
when tearing down a connection.
-rw-r--r-- | CHANGES | 4 | ||||
-rw-r--r-- | RELEASE-NOTES | 4 | ||||
-rw-r--r-- | lib/url.c | 5 |
3 files changed, 11 insertions, 2 deletions
@@ -7,6 +7,10 @@ Changelog Daniel (9 November 2006) +- Dmitriy Sergeyev found a SIGSEGV with his test04.c example posted on 7 Nov + 2006. It turned out we wrongly assumed that the connection cache was present + when tearing down a connection. + - Ciprian Badescu found a SIGSEGV when doing multiple TFTP transfers using the multi interface, but I could also repeat it doing multiple sequential ones with the easy interface. Using Ciprian's test case, I could fix it. diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 68c4e9953..4e409be84 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -20,6 +20,8 @@ This release includes the following bugfixes: was not enabled o multiple TFTP transfers on the same (easy or multi) handle could cause a crash + o SIGSEGV when disconnecting on a transfer on a re-used handle when the + host name didn't resolve Other curl-related news: @@ -33,6 +35,6 @@ This release would not have looked like this without help, code, reports and advice from friends like these: James Housley, Olaf Stueben, Yang Tse, Gisle Vanem, Bradford Bruce, - Ciprian Badescu + Ciprian Badescu, Dmitriy Sergeyev Thanks! (and sorry if I forgot to mention someone) @@ -1804,7 +1804,10 @@ CURLcode Curl_disconnect(struct connectdata *conn) if(-1 != conn->connectindex) { /* unlink ourselves! */ infof(data, "Closing connection #%ld\n", conn->connectindex); - data->state.connc->connects[conn->connectindex] = NULL; + if(data->state.connc) + /* only clear the table entry if we still know in which cache we + used to be in */ + data->state.connc->connects[conn->connectindex] = NULL; } #ifdef USE_LIBIDN |