diff options
Diffstat (limited to 'src/lib/libssl/ssl_sess.c')
| -rw-r--r-- | src/lib/libssl/ssl_sess.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/lib/libssl/ssl_sess.c b/src/lib/libssl/ssl_sess.c index c67ae1c22f..c032154d48 100644 --- a/src/lib/libssl/ssl_sess.c +++ b/src/lib/libssl/ssl_sess.c | |||
| @@ -205,7 +205,7 @@ SSL_SESSION_new(void) | |||
| 205 | ss->verify_result = 1; /* avoid 0 (= X509_V_OK) just in case */ | 205 | ss->verify_result = 1; /* avoid 0 (= X509_V_OK) just in case */ |
| 206 | ss->references = 1; | 206 | ss->references = 1; |
| 207 | ss->timeout=60*5+4; /* 5 minute timeout by default */ | 207 | ss->timeout=60*5+4; /* 5 minute timeout by default */ |
| 208 | ss->time = (unsigned long)time(NULL); | 208 | ss->time = time(NULL); |
| 209 | ss->prev = NULL; | 209 | ss->prev = NULL; |
| 210 | ss->next = NULL; | 210 | ss->next = NULL; |
| 211 | ss->compress_meth = 0; | 211 | ss->compress_meth = 0; |
| @@ -555,7 +555,7 @@ ssl_get_prev_session(SSL *s, unsigned char *session_id, int len, | |||
| 555 | goto err; | 555 | goto err; |
| 556 | } | 556 | } |
| 557 | 557 | ||
| 558 | if (ret->timeout < (long)(time(NULL) - ret->time)) /* timeout */ | 558 | if (ret->timeout < (time(NULL) - ret->time)) /* timeout */ |
| 559 | { | 559 | { |
| 560 | s->session_ctx->stats.sess_timeout++; | 560 | s->session_ctx->stats.sess_timeout++; |
| 561 | if (try_session_cache) { | 561 | if (try_session_cache) { |
| @@ -699,7 +699,6 @@ SSL_SESSION_free(SSL_SESSION *ss) | |||
| 699 | 699 | ||
| 700 | CRYPTO_free_ex_data(CRYPTO_EX_INDEX_SSL_SESSION, ss, &ss->ex_data); | 700 | CRYPTO_free_ex_data(CRYPTO_EX_INDEX_SSL_SESSION, ss, &ss->ex_data); |
| 701 | 701 | ||
| 702 | OPENSSL_cleanse(ss->key_arg, sizeof ss->key_arg); | ||
| 703 | OPENSSL_cleanse(ss->master_key, sizeof ss->master_key); | 702 | OPENSSL_cleanse(ss->master_key, sizeof ss->master_key); |
| 704 | OPENSSL_cleanse(ss->session_id, sizeof ss->session_id); | 703 | OPENSSL_cleanse(ss->session_id, sizeof ss->session_id); |
| 705 | if (ss->sess_cert != NULL) | 704 | if (ss->sess_cert != NULL) |
| @@ -807,6 +806,7 @@ SSL_SESSION_get_timeout(const SSL_SESSION *s) | |||
| 807 | return (s->timeout); | 806 | return (s->timeout); |
| 808 | } | 807 | } |
| 809 | 808 | ||
| 809 | /* XXX 2038 */ | ||
| 810 | long | 810 | long |
| 811 | SSL_SESSION_get_time(const SSL_SESSION *s) | 811 | SSL_SESSION_get_time(const SSL_SESSION *s) |
| 812 | { | 812 | { |
| @@ -815,6 +815,7 @@ SSL_SESSION_get_time(const SSL_SESSION *s) | |||
| 815 | return (s->time); | 815 | return (s->time); |
| 816 | } | 816 | } |
| 817 | 817 | ||
| 818 | /* XXX 2038 */ | ||
| 818 | long | 819 | long |
| 819 | SSL_SESSION_set_time(SSL_SESSION *s, long t) | 820 | SSL_SESSION_set_time(SSL_SESSION *s, long t) |
| 820 | { | 821 | { |
| @@ -926,7 +927,7 @@ typedef struct timeout_param_st { | |||
| 926 | static void | 927 | static void |
| 927 | timeout_doall_arg(SSL_SESSION *s, TIMEOUT_PARAM *p) | 928 | timeout_doall_arg(SSL_SESSION *s, TIMEOUT_PARAM *p) |
| 928 | { | 929 | { |
| 929 | if ((p->time == 0) || (p->time > (s->time+s->timeout))) /* timeout */ | 930 | if ((p->time == 0) || (p->time > (s->time + s->timeout))) /* timeout */ |
| 930 | { | 931 | { |
| 931 | /* The reason we don't call SSL_CTX_remove_session() is to | 932 | /* The reason we don't call SSL_CTX_remove_session() is to |
| 932 | * save on locking overhead */ | 933 | * save on locking overhead */ |
| @@ -942,6 +943,7 @@ timeout_doall_arg(SSL_SESSION *s, TIMEOUT_PARAM *p) | |||
| 942 | static | 943 | static |
| 943 | IMPLEMENT_LHASH_DOALL_ARG_FN(timeout, SSL_SESSION, TIMEOUT_PARAM) | 944 | IMPLEMENT_LHASH_DOALL_ARG_FN(timeout, SSL_SESSION, TIMEOUT_PARAM) |
| 944 | 945 | ||
| 946 | /* XXX 2038 */ | ||
| 945 | void | 947 | void |
| 946 | SSL_CTX_flush_sessions(SSL_CTX *s, long t) | 948 | SSL_CTX_flush_sessions(SSL_CTX *s, long t) |
| 947 | { | 949 | { |
