diff options
author | jaenicke <jaenicke> | 2002-02-10 12:46:35 +0000 |
---|---|---|
committer | jaenicke <jaenicke> | 2002-02-10 12:46:35 +0000 |
commit | 533f74c2b2999b565dd324897793f085c114cdfc (patch) | |
tree | f02953c285c86cf12025fa7f2df3da6f94836699 /ssl/ssl_sess.c | |
parent | 23f9249c3106cf31b01bd528508fbf19fdcb5bb2 (diff) | |
download | openssl-533f74c2b2999b565dd324897793f085c114cdfc.tar.gz |
Make removal from session cache more robust.
Diffstat (limited to 'ssl/ssl_sess.c')
-rw-r--r-- | ssl/ssl_sess.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/ssl/ssl_sess.c b/ssl/ssl_sess.c index 9078d759f..6424f775e 100644 --- a/ssl/ssl_sess.c +++ b/ssl/ssl_sess.c @@ -474,10 +474,10 @@ static int remove_session_lock(SSL_CTX *ctx, SSL_SESSION *c, int lck) if ((c != NULL) && (c->session_id_length != 0)) { if(lck) CRYPTO_w_lock(CRYPTO_LOCK_SSL_CTX); - r=(SSL_SESSION *)lh_delete(ctx->sessions,c); - if (r != NULL) + if ((r = (SSL_SESSION *)lh_retrieve(ctx->sessions,c)) == c) { ret=1; + r=(SSL_SESSION *)lh_delete(ctx->sessions,c); SSL_SESSION_list_remove(ctx,c); } |