diff options
| -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 | 
