diff options
Diffstat (limited to 'src/lib/libssl/ssl_sess.c')
| -rw-r--r-- | src/lib/libssl/ssl_sess.c | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/src/lib/libssl/ssl_sess.c b/src/lib/libssl/ssl_sess.c index c114e6ec07..4a7650fd9d 100644 --- a/src/lib/libssl/ssl_sess.c +++ b/src/lib/libssl/ssl_sess.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ssl_sess.c,v 1.60 2017/01/23 05:13:02 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_sess.c,v 1.61 2017/01/23 05:27:22 jsing Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -185,13 +185,13 @@ SSL_SESSION_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, | |||
| 185 | int | 185 | int |
| 186 | SSL_SESSION_set_ex_data(SSL_SESSION *s, int idx, void *arg) | 186 | SSL_SESSION_set_ex_data(SSL_SESSION *s, int idx, void *arg) |
| 187 | { | 187 | { |
| 188 | return (CRYPTO_set_ex_data(&s->ex_data, idx, arg)); | 188 | return (CRYPTO_set_ex_data(&s->internal->ex_data, idx, arg)); |
| 189 | } | 189 | } |
| 190 | 190 | ||
| 191 | void * | 191 | void * |
| 192 | SSL_SESSION_get_ex_data(const SSL_SESSION *s, int idx) | 192 | SSL_SESSION_get_ex_data(const SSL_SESSION *s, int idx) |
| 193 | { | 193 | { |
| 194 | return (CRYPTO_get_ex_data(&s->ex_data, idx)); | 194 | return (CRYPTO_get_ex_data(&s->internal->ex_data, idx)); |
| 195 | } | 195 | } |
| 196 | 196 | ||
| 197 | SSL_SESSION * | 197 | SSL_SESSION * |
| @@ -213,8 +213,8 @@ SSL_SESSION_new(void) | |||
| 213 | ss->references = 1; | 213 | ss->references = 1; |
| 214 | ss->timeout=60*5+4; /* 5 minute timeout by default */ | 214 | ss->timeout=60*5+4; /* 5 minute timeout by default */ |
| 215 | ss->time = time(NULL); | 215 | ss->time = time(NULL); |
| 216 | ss->prev = NULL; | 216 | ss->internal->prev = NULL; |
| 217 | ss->next = NULL; | 217 | ss->internal->next = NULL; |
| 218 | ss->tlsext_hostname = NULL; | 218 | ss->tlsext_hostname = NULL; |
| 219 | 219 | ||
| 220 | ss->internal->tlsext_ecpointformatlist_length = 0; | 220 | ss->internal->tlsext_ecpointformatlist_length = 0; |
| @@ -222,7 +222,7 @@ SSL_SESSION_new(void) | |||
| 222 | ss->internal->tlsext_ellipticcurvelist_length = 0; | 222 | ss->internal->tlsext_ellipticcurvelist_length = 0; |
| 223 | ss->internal->tlsext_ellipticcurvelist = NULL; | 223 | ss->internal->tlsext_ellipticcurvelist = NULL; |
| 224 | 224 | ||
| 225 | CRYPTO_new_ex_data(CRYPTO_EX_INDEX_SSL_SESSION, ss, &ss->ex_data); | 225 | CRYPTO_new_ex_data(CRYPTO_EX_INDEX_SSL_SESSION, ss, &ss->internal->ex_data); |
| 226 | 226 | ||
| 227 | return (ss); | 227 | return (ss); |
| 228 | } | 228 | } |
| @@ -695,7 +695,7 @@ SSL_SESSION_free(SSL_SESSION *ss) | |||
| 695 | if (i > 0) | 695 | if (i > 0) |
| 696 | return; | 696 | return; |
| 697 | 697 | ||
| 698 | CRYPTO_free_ex_data(CRYPTO_EX_INDEX_SSL_SESSION, ss, &ss->ex_data); | 698 | CRYPTO_free_ex_data(CRYPTO_EX_INDEX_SSL_SESSION, ss, &ss->internal->ex_data); |
| 699 | 699 | ||
| 700 | explicit_bzero(ss->master_key, sizeof ss->master_key); | 700 | explicit_bzero(ss->master_key, sizeof ss->master_key); |
| 701 | explicit_bzero(ss->session_id, sizeof ss->session_id); | 701 | explicit_bzero(ss->session_id, sizeof ss->session_id); |
| @@ -962,50 +962,50 @@ ssl_clear_bad_session(SSL *s) | |||
| 962 | static void | 962 | static void |
| 963 | SSL_SESSION_list_remove(SSL_CTX *ctx, SSL_SESSION *s) | 963 | SSL_SESSION_list_remove(SSL_CTX *ctx, SSL_SESSION *s) |
| 964 | { | 964 | { |
| 965 | if ((s->next == NULL) || (s->prev == NULL)) | 965 | if ((s->internal->next == NULL) || (s->internal->prev == NULL)) |
| 966 | return; | 966 | return; |
| 967 | 967 | ||
| 968 | if (s->next == (SSL_SESSION *)&(ctx->internal->session_cache_tail)) { | 968 | if (s->internal->next == (SSL_SESSION *)&(ctx->internal->session_cache_tail)) { |
| 969 | /* last element in list */ | 969 | /* last element in list */ |
| 970 | if (s->prev == (SSL_SESSION *)&(ctx->internal->session_cache_head)) { | 970 | if (s->internal->prev == (SSL_SESSION *)&(ctx->internal->session_cache_head)) { |
| 971 | /* only one element in list */ | 971 | /* only one element in list */ |
| 972 | ctx->internal->session_cache_head = NULL; | 972 | ctx->internal->session_cache_head = NULL; |
| 973 | ctx->internal->session_cache_tail = NULL; | 973 | ctx->internal->session_cache_tail = NULL; |
| 974 | } else { | 974 | } else { |
| 975 | ctx->internal->session_cache_tail = s->prev; | 975 | ctx->internal->session_cache_tail = s->internal->prev; |
| 976 | s->prev->next = | 976 | s->internal->prev->internal->next = |
| 977 | (SSL_SESSION *)&(ctx->internal->session_cache_tail); | 977 | (SSL_SESSION *)&(ctx->internal->session_cache_tail); |
| 978 | } | 978 | } |
| 979 | } else { | 979 | } else { |
| 980 | if (s->prev == (SSL_SESSION *)&(ctx->internal->session_cache_head)) { | 980 | if (s->internal->prev == (SSL_SESSION *)&(ctx->internal->session_cache_head)) { |
| 981 | /* first element in list */ | 981 | /* first element in list */ |
| 982 | ctx->internal->session_cache_head = s->next; | 982 | ctx->internal->session_cache_head = s->internal->next; |
| 983 | s->next->prev = | 983 | s->internal->next->internal->prev = |
| 984 | (SSL_SESSION *)&(ctx->internal->session_cache_head); | 984 | (SSL_SESSION *)&(ctx->internal->session_cache_head); |
| 985 | } else { | 985 | } else { |
| 986 | /* middle of list */ | 986 | /* middle of list */ |
| 987 | s->next->prev = s->prev; | 987 | s->internal->next->internal->prev = s->internal->prev; |
| 988 | s->prev->next = s->next; | 988 | s->internal->prev->internal->next = s->internal->next; |
| 989 | } | 989 | } |
| 990 | } | 990 | } |
| 991 | s->prev = s->next = NULL; | 991 | s->internal->prev = s->internal->next = NULL; |
| 992 | } | 992 | } |
| 993 | 993 | ||
| 994 | static void | 994 | static void |
| 995 | SSL_SESSION_list_add(SSL_CTX *ctx, SSL_SESSION *s) | 995 | SSL_SESSION_list_add(SSL_CTX *ctx, SSL_SESSION *s) |
| 996 | { | 996 | { |
| 997 | if ((s->next != NULL) && (s->prev != NULL)) | 997 | if ((s->internal->next != NULL) && (s->internal->prev != NULL)) |
| 998 | SSL_SESSION_list_remove(ctx, s); | 998 | SSL_SESSION_list_remove(ctx, s); |
| 999 | 999 | ||
| 1000 | if (ctx->internal->session_cache_head == NULL) { | 1000 | if (ctx->internal->session_cache_head == NULL) { |
| 1001 | ctx->internal->session_cache_head = s; | 1001 | ctx->internal->session_cache_head = s; |
| 1002 | ctx->internal->session_cache_tail = s; | 1002 | ctx->internal->session_cache_tail = s; |
| 1003 | s->prev = (SSL_SESSION *)&(ctx->internal->session_cache_head); | 1003 | s->internal->prev = (SSL_SESSION *)&(ctx->internal->session_cache_head); |
| 1004 | s->next = (SSL_SESSION *)&(ctx->internal->session_cache_tail); | 1004 | s->internal->next = (SSL_SESSION *)&(ctx->internal->session_cache_tail); |
| 1005 | } else { | 1005 | } else { |
| 1006 | s->next = ctx->internal->session_cache_head; | 1006 | s->internal->next = ctx->internal->session_cache_head; |
| 1007 | s->next->prev = s; | 1007 | s->internal->next->internal->prev = s; |
| 1008 | s->prev = (SSL_SESSION *)&(ctx->internal->session_cache_head); | 1008 | s->internal->prev = (SSL_SESSION *)&(ctx->internal->session_cache_head); |
| 1009 | ctx->internal->session_cache_head = s; | 1009 | ctx->internal->session_cache_head = s; |
| 1010 | } | 1010 | } |
| 1011 | } | 1011 | } |
