diff options
author | Daniel Stenberg <daniel@haxx.se> | 2002-01-09 09:38:37 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2002-01-09 09:38:37 +0000 |
commit | d84a0c51e0fe467a5aa7446e4183ea99c3ae3c94 (patch) | |
tree | 4d6e7aff29bc68910c0cb895d6ca50553b7abf52 | |
parent | d9a7c7de51d1af67142d1a1b49590efdb112eb5e (diff) | |
download | curl-d84a0c51e0fe467a5aa7446e4183ea99c3ae3c94.tar.gz |
Cris Bailiff found out that when the SSL session cache was filled, libcurl
would crash. This corrects the problem.
-rw-r--r-- | lib/ssluse.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/ssluse.c b/lib/ssluse.c index 47ae497f0..21f27cdfb 100644 --- a/lib/ssluse.c +++ b/lib/ssluse.c @@ -552,9 +552,9 @@ int Curl_SSL_Close_All(struct SessionHandle *data) static int Store_SSL_Session(struct connectdata *conn) { SSL_SESSION *ssl_sessionid; - struct curl_ssl_session *store; int i; struct SessionHandle *data=conn->data; /* the mother of all structs */ + struct curl_ssl_session *store = &data->state.session[0]; int oldest_age=data->state.session[0].age; /* zero if unused */ /* ask OpenSSL, say please */ @@ -568,7 +568,8 @@ static int Store_SSL_Session(struct connectdata *conn) the oldest if necessary) */ /* find an empty slot for us, or find the oldest */ - for(i=0; (i<data->set.ssl.numsessions) && data->state.session[i].sessionid; i++) { + for(i=1; (i<data->set.ssl.numsessions) && + data->state.session[i].sessionid; i++) { if(data->state.session[i].age < oldest_age) { oldest_age = data->state.session[i].age; store = &data->state.session[i]; |