diff options
author | guenther <> | 2014-04-20 12:48:19 +0000 |
---|---|---|
committer | guenther <> | 2014-04-20 12:48:19 +0000 |
commit | 71d6ded93deb4d1edc464874b5359ece0ef857d2 (patch) | |
tree | cca6edfc57a2953a5fb440052243f46cd8d7eb12 /src/lib/libssl/ssl_sess.c | |
parent | 4b4a5d4b04e0ebd28c425210967942e4fa5d834c (diff) | |
download | openbsd-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.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 | { |