summaryrefslogtreecommitdiff
path: root/src/lib/libssl/s3_clnt.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libssl/s3_clnt.c')
-rw-r--r--src/lib/libssl/s3_clnt.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/lib/libssl/s3_clnt.c b/src/lib/libssl/s3_clnt.c
index e5853ede95..b6be748932 100644
--- a/src/lib/libssl/s3_clnt.c
+++ b/src/lib/libssl/s3_clnt.c
@@ -545,6 +545,7 @@ static int ssl3_client_hello(SSL *s)
545 *(p++)=i; 545 *(p++)=i;
546 if (i != 0) 546 if (i != 0)
547 { 547 {
548 die(i <= sizeof s->session->session_id);
548 memcpy(p,s->session->session_id,i); 549 memcpy(p,s->session->session_id,i);
549 p+=i; 550 p+=i;
550 } 551 }
@@ -626,6 +627,14 @@ static int ssl3_get_server_hello(SSL *s)
626 /* get the session-id */ 627 /* get the session-id */
627 j= *(p++); 628 j= *(p++);
628 629
630 if(j > sizeof s->session->session_id)
631 {
632 al=SSL_AD_ILLEGAL_PARAMETER;
633 SSLerr(SSL_F_SSL3_GET_SERVER_HELLO,
634 SSL_R_SSL3_SESSION_ID_TOO_LONG);
635 goto f_err;
636 }
637
629 if ((j != 0) && (j != SSL3_SESSION_ID_SIZE)) 638 if ((j != 0) && (j != SSL3_SESSION_ID_SIZE))
630 { 639 {
631 /* SSLref returns 16 :-( */ 640 /* SSLref returns 16 :-( */