Commit 7c7667b8 authored by Nils Larsch's avatar Nils Larsch
Browse files

check return value of RAND_pseudo_bytes; backport from the stable branch

parent 38be5db9
Loading
Loading
Loading
Loading
+0 −12
Original line number Diff line number Diff line
@@ -612,18 +612,6 @@ be added to the end of this file.
	All EVP_*_cfb functions have changed names to EVP_*_cfb64 or
	EVP_*_cfb128.

2004-05-15 18:39  ben

	Changed:
		ssl/s23_clnt.c (1.20.2.6), "Exp", lines: +5 -2
		ssl/s2_clnt.c (1.37.2.11), "Exp", lines: +5 -2
		ssl/s2_srvr.c (1.36.2.8), "Exp", lines: +6 -3
		ssl/s3_clnt.c (1.53.2.17), "Exp", lines: +2 -1
		ssl/s3_srvr.c (1.85.2.22), "Exp", lines: +4 -2
		ssl/ssl_sess.c (1.40.2.8), "Exp", lines: +2 -1

	Check error returns.

2004-05-17 06:39  levitte

	Changed:
+5 −2
Original line number Diff line number Diff line
@@ -235,7 +235,8 @@ static int ssl23_client_hello(SSL *s)
#endif

		p=s->s3->client_random;
		RAND_pseudo_bytes(p,SSL3_RANDOM_SIZE);
		if (RAND_pseudo_bytes(p,SSL3_RANDOM_SIZE) <= 0)
			return -1;

		/* Do the message type and length last */
		d= &(buf[2]);
@@ -296,7 +297,9 @@ static int ssl23_client_hello(SSL *s)
			i=ch_len;
		s2n(i,d);
		memset(&(s->s3->client_random[0]),0,SSL3_RANDOM_SIZE);
		RAND_pseudo_bytes(&(s->s3->client_random[SSL3_RANDOM_SIZE-i]),i);
		if (RAND_pseudo_bytes(&(s->s3->client_random[SSL3_RANDOM_SIZE-i]),i) <= 0)
			return -1;

		memcpy(p,&(s->s3->client_random[SSL3_RANDOM_SIZE-i]),i);
		p+=i;

+5 −2
Original line number Diff line number Diff line
@@ -612,7 +612,8 @@ static int client_hello(SSL *s)
		s->s2->challenge_length=SSL2_CHALLENGE_LENGTH;
		s2n(SSL2_CHALLENGE_LENGTH,p);		/* challenge length */
		/*challenge id data*/
		RAND_pseudo_bytes(s->s2->challenge,SSL2_CHALLENGE_LENGTH);
		if (RAND_pseudo_bytes(s->s2->challenge,SSL2_CHALLENGE_LENGTH) <= 0)
			return -1;
		memcpy(d,s->s2->challenge,SSL2_CHALLENGE_LENGTH);
		d+=SSL2_CHALLENGE_LENGTH;

@@ -660,7 +661,9 @@ static int client_master_key(SSL *s)
			SSLerr(SSL_F_CLIENT_MASTER_KEY, ERR_R_INTERNAL_ERROR);
			return -1;
			}
		if (i > 0) RAND_pseudo_bytes(sess->key_arg,i);
		if (i > 0)
			if (RAND_pseudo_bytes(sess->key_arg,i) <= 0)
				return -1;

		/* make a master key */
		i=EVP_CIPHER_key_length(c);
+6 −3
Original line number Diff line number Diff line
@@ -498,7 +498,8 @@ static int get_client_master_key(SSL *s)
			i=ek;
		else
			i=EVP_CIPHER_key_length(c);
		RAND_pseudo_bytes(p,i);
		if (RAND_pseudo_bytes(p,i) <= 0)
			return 0;
		}
#else
	if (i < 0)
@@ -804,7 +805,8 @@ static int server_hello(SSL *s)
		/* make and send conn_id */
		s2n(SSL2_CONNECTION_ID_LENGTH,p);	/* add conn_id length */
		s->s2->conn_id_length=SSL2_CONNECTION_ID_LENGTH;
		RAND_pseudo_bytes(s->s2->conn_id,(int)s->s2->conn_id_length);
		if (RAND_pseudo_bytes(s->s2->conn_id,(int)s->s2->conn_id_length) <= 0)
			return -1;
		memcpy(d,s->s2->conn_id,SSL2_CONNECTION_ID_LENGTH);
		d+=SSL2_CONNECTION_ID_LENGTH;

@@ -950,7 +952,8 @@ static int request_certificate(SSL *s)
		p=(unsigned char *)s->init_buf->data;
		*(p++)=SSL2_MT_REQUEST_CERTIFICATE;
		*(p++)=SSL2_AT_MD5_WITH_RSA_ENCRYPTION;
		RAND_pseudo_bytes(ccd,SSL2_MIN_CERT_CHALLENGE_LENGTH);
		if (RAND_pseudo_bytes(ccd,SSL2_MIN_CERT_CHALLENGE_LENGTH) <= 0)
			return -1;
		memcpy(p,ccd,SSL2_MIN_CERT_CHALLENGE_LENGTH);

		s->state=SSL2_ST_SEND_REQUEST_CERTIFICATE_B;
+2 −1
Original line number Diff line number Diff line
@@ -552,7 +552,8 @@ int ssl3_client_hello(SSL *s)
		p=s->s3->client_random;
		Time=time(NULL);			/* Time */
		l2n(Time,p);
		RAND_pseudo_bytes(p,SSL3_RANDOM_SIZE-4);
		if (RAND_pseudo_bytes(p,SSL3_RANDOM_SIZE-4) <= 0)
			goto err;

		/* Do the message type and length last */
		d=p= &(buf[4]);
Loading