summaryrefslogtreecommitdiff
path: root/src/lib/libssl/ssl_sess.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libssl/ssl_sess.c')
-rw-r--r--src/lib/libssl/ssl_sess.c7
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;