diff options
Diffstat (limited to '')
| -rw-r--r-- | src/lib/libssl/ssl_sess.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/lib/libssl/ssl_sess.c b/src/lib/libssl/ssl_sess.c index 8bfc382bb6..ca1a7427be 100644 --- a/src/lib/libssl/ssl_sess.c +++ b/src/lib/libssl/ssl_sess.c | |||
| @@ -251,7 +251,12 @@ int ssl_get_new_session(SSL *s, int session) | |||
| 251 | ss->session_id_length=0; | 251 | ss->session_id_length=0; |
| 252 | } | 252 | } |
| 253 | 253 | ||
| 254 | die(s->sid_ctx_length <= sizeof ss->sid_ctx); | 254 | if (s->sid_ctx_length > sizeof ss->sid_ctx) |
| 255 | { | ||
| 256 | SSLerr(SSL_F_SSL_GET_NEW_SESSION, ERR_R_INTERNAL_ERROR); | ||
| 257 | SSL_SESSION_free(ss); | ||
| 258 | return 0; | ||
| 259 | } | ||
| 255 | memcpy(ss->sid_ctx,s->sid_ctx,s->sid_ctx_length); | 260 | memcpy(ss->sid_ctx,s->sid_ctx,s->sid_ctx_length); |
| 256 | ss->sid_ctx_length=s->sid_ctx_length; | 261 | ss->sid_ctx_length=s->sid_ctx_length; |
| 257 | s->session=ss; | 262 | s->session=ss; |
