diff options
-rw-r--r-- | ssl/d1_clnt.c | 5 | ||||
-rw-r--r-- | ssl/s23_clnt.c | 1 | ||||
-rw-r--r-- | ssl/s3_srvr.c | 2 |
3 files changed, 4 insertions, 4 deletions
diff --git a/ssl/d1_clnt.c b/ssl/d1_clnt.c index 556ac9ccc7..492d6dfbee 100644 --- a/ssl/d1_clnt.c +++ b/ssl/d1_clnt.c @@ -798,11 +798,10 @@ int dtls1_client_hello(SSL *s) /* if client_random is initialized, reuse it, we are * required to use same upon reply to HelloVerify */ - for (i=0;p[i]=='\0' && i<sizeof(s->s3->client_random);i++) ; + for (i=0;p[i]=='\0' && i<sizeof(s->s3->client_random);i++) + ; if (i==sizeof(s->s3->client_random)) - { ssl_fill_hello_random(s,0,p,sizeof(s->s3->client_random)); - } /* Do the message type and length last */ d=p= &(buf[DTLS1_HM_HEADER_LENGTH]); diff --git a/ssl/s23_clnt.c b/ssl/s23_clnt.c index 65d2c26ad2..84670b6c1c 100644 --- a/ssl/s23_clnt.c +++ b/ssl/s23_clnt.c @@ -274,6 +274,7 @@ static int ssl23_no_ssl2_ciphers(SSL *s) int ssl_fill_hello_random(SSL *s, int server, unsigned char *result, int len) { int send_time = 0; + if (len < 4) return 0; if (server) diff --git a/ssl/s3_srvr.c b/ssl/s3_srvr.c index 508239fce5..e8c7e6d1f4 100644 --- a/ssl/s3_srvr.c +++ b/ssl/s3_srvr.c @@ -1195,7 +1195,7 @@ int ssl3_get_client_hello(SSL *s) { unsigned char *pos; pos=s->s3->server_random; - if (ssl_fill_hello_random(s,1,pos,SSL3_RANDOM_SIZE) <= 0) + if (ssl_fill_hello_random(s, 1, pos, SSL3_RANDOM_SIZE) <= 0) { al=SSL_AD_INTERNAL_ERROR; goto f_err; |