summaryrefslogtreecommitdiff
path: root/src/lib/libssl/ssl_sess.c
diff options
context:
space:
mode:
authorguenther <>2014-04-20 12:48:19 +0000
committerguenther <>2014-04-20 12:48:19 +0000
commit71d6ded93deb4d1edc464874b5359ece0ef857d2 (patch)
treecca6edfc57a2953a5fb440052243f46cd8d7eb12 /src/lib/libssl/ssl_sess.c
parent4b4a5d4b04e0ebd28c425210967942e4fa5d834c (diff)
downloadopenbsd-71d6ded93deb4d1edc464874b5359ece0ef857d2.tar.gz
openbsd-71d6ded93deb4d1edc464874b5359ece0ef857d2.tar.bz2
openbsd-71d6ded93deb4d1edc464874b5359ece0ef857d2.zip
Chop off more SSLv2 tentacles and start fixing and noting y2038 issues.
APIs that pass times as longs will have to change at some point... Bump major on both libcrypto and libssl. ok tedu@
Diffstat (limited to 'src/lib/libssl/ssl_sess.c')
-rw-r--r--src/lib/libssl/ssl_sess.c10
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 */
810long 810long
811SSL_SESSION_get_time(const SSL_SESSION *s) 811SSL_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 */
818long 819long
819SSL_SESSION_set_time(SSL_SESSION *s, long t) 820SSL_SESSION_set_time(SSL_SESSION *s, long t)
820{ 821{
@@ -926,7 +927,7 @@ typedef struct timeout_param_st {
926static void 927static void
927timeout_doall_arg(SSL_SESSION *s, TIMEOUT_PARAM *p) 928timeout_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)
942static 943static
943IMPLEMENT_LHASH_DOALL_ARG_FN(timeout, SSL_SESSION, TIMEOUT_PARAM) 944IMPLEMENT_LHASH_DOALL_ARG_FN(timeout, SSL_SESSION, TIMEOUT_PARAM)
944 945
946/* XXX 2038 */
945void 947void
946SSL_CTX_flush_sessions(SSL_CTX *s, long t) 948SSL_CTX_flush_sessions(SSL_CTX *s, long t)
947{ 949{