summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2002-01-09 09:38:37 +0000
committerDaniel Stenberg <daniel@haxx.se>2002-01-09 09:38:37 +0000
commitd84a0c51e0fe467a5aa7446e4183ea99c3ae3c94 (patch)
tree4d6e7aff29bc68910c0cb895d6ca50553b7abf52
parentd9a7c7de51d1af67142d1a1b49590efdb112eb5e (diff)
downloadgnurl-d84a0c51e0fe467a5aa7446e4183ea99c3ae3c94.tar.gz
gnurl-d84a0c51e0fe467a5aa7446e4183ea99c3ae3c94.tar.bz2
gnurl-d84a0c51e0fe467a5aa7446e4183ea99c3ae3c94.zip
Cris Bailiff found out that when the SSL session cache was filled, libcurl
would crash. This corrects the problem.
-rw-r--r--lib/ssluse.c5
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];