Loading CHANGES +1 −1 Original line number Original line Diff line number Diff line Loading @@ -115,7 +115,7 @@ *) Change ssl/s2_clnt.c and ssl/s3_srvr.c so that received handshake *) Change ssl/s2_clnt.c and ssl/s3_srvr.c so that received handshake messages are stored in a single piece (fixed-length part and messages are stored in a single piece (fixed-length part and variable-length part) and fix various bugs found on the way. variable-length part combined) and fix various bugs found on the way. [Bodo Moeller] [Bodo Moeller] *) In ssl3_get_client_hello (ssl/s3_srvr.c), generate a fatal alert *) In ssl3_get_client_hello (ssl/s3_srvr.c), generate a fatal alert Loading ssl/s2_clnt.c +15 −6 Original line number Original line Diff line number Diff line Loading @@ -873,8 +873,8 @@ static int get_server_verify(SSL *s) p=(unsigned char *)s->init_buf->data; p=(unsigned char *)s->init_buf->data; if (s->state == SSL2_ST_GET_SERVER_VERIFY_A) if (s->state == SSL2_ST_GET_SERVER_VERIFY_A) { { i=ssl2_read(s,(char *)&(p[s->init_num]),3-s->init_num); i=ssl2_read(s,(char *)&(p[s->init_num]),1-s->init_num); if (i < (3-s->init_num)) if (i < (1-s->init_num)) return(ssl2_part_read(s,SSL_F_GET_SERVER_VERIFY,i)); return(ssl2_part_read(s,SSL_F_GET_SERVER_VERIFY,i)); s->init_num += i; s->init_num += i; Loading @@ -888,8 +888,12 @@ static int get_server_verify(SSL *s) SSL_R_READ_WRONG_PACKET_TYPE); SSL_R_READ_WRONG_PACKET_TYPE); } } else else SSLerr(SSL_F_GET_SERVER_VERIFY, { SSL_R_PEER_ERROR); SSLerr(SSL_F_GET_SERVER_VERIFY,SSL_R_PEER_ERROR); /* try to read the error message */ i=ssl2_read(s,(char *)&(p[s->init_num]),3-s->init_num); return ssl2_part_read(s,SSL_F_GET_SERVER_VERIFY,i); } return(-1); return(-1); } } } } Loading Loading @@ -923,8 +927,8 @@ static int get_server_finished(SSL *s) p=buf; p=buf; if (s->state == SSL2_ST_GET_SERVER_FINISHED_A) if (s->state == SSL2_ST_GET_SERVER_FINISHED_A) { { i=ssl2_read(s,(char *)&(buf[s->init_num]),3-s->init_num); i=ssl2_read(s,(char *)&(buf[s->init_num]),1-s->init_num); if (i < (3-s->init_num)) if (i < (1-s->init_num)) return(ssl2_part_read(s,SSL_F_GET_SERVER_FINISHED,i)); return(ssl2_part_read(s,SSL_F_GET_SERVER_FINISHED,i)); s->init_num += i; s->init_num += i; Loading @@ -941,7 +945,12 @@ static int get_server_finished(SSL *s) SSLerr(SSL_F_GET_SERVER_FINISHED,SSL_R_READ_WRONG_PACKET_TYPE); SSLerr(SSL_F_GET_SERVER_FINISHED,SSL_R_READ_WRONG_PACKET_TYPE); } } else else { SSLerr(SSL_F_GET_SERVER_FINISHED,SSL_R_PEER_ERROR); SSLerr(SSL_F_GET_SERVER_FINISHED,SSL_R_PEER_ERROR); /* try to read the error message */ i=ssl2_read(s,(char *)&(p[s->init_num]),3-s->init_num); return ssl2_part_read(s,SSL_F_GET_SERVER_VERIFY,i); } return(-1); return(-1); } } s->state=SSL2_ST_GET_SERVER_FINISHED_B; s->state=SSL2_ST_GET_SERVER_FINISHED_B; Loading ssl/s2_srvr.c +8 −3 Original line number Original line Diff line number Diff line Loading @@ -801,10 +801,10 @@ static int get_client_finished(SSL *s) p=(unsigned char *)s->init_buf->data; p=(unsigned char *)s->init_buf->data; if (s->state == SSL2_ST_GET_CLIENT_FINISHED_A) if (s->state == SSL2_ST_GET_CLIENT_FINISHED_A) { { i=ssl2_read(s,(char *)&(p[s->init_num]),3-s->init_num); i=ssl2_read(s,(char *)&(p[s->init_num]),1-s->init_num); if (i < 3-s->init_num) if (i < 1-s->init_num) return(ssl2_part_read(s,SSL_F_GET_CLIENT_FINISHED,i)); return(ssl2_part_read(s,SSL_F_GET_CLIENT_FINISHED,i)); s->init_num = 3; s->init_num += i; if (*p != SSL2_MT_CLIENT_FINISHED) if (*p != SSL2_MT_CLIENT_FINISHED) { { Loading @@ -814,7 +814,12 @@ static int get_client_finished(SSL *s) SSLerr(SSL_F_GET_CLIENT_FINISHED,SSL_R_READ_WRONG_PACKET_TYPE); SSLerr(SSL_F_GET_CLIENT_FINISHED,SSL_R_READ_WRONG_PACKET_TYPE); } } else else { SSLerr(SSL_F_GET_CLIENT_FINISHED,SSL_R_PEER_ERROR); SSLerr(SSL_F_GET_CLIENT_FINISHED,SSL_R_PEER_ERROR); /* try to read the error message */ i=ssl2_read(s,(char *)&(p[s->init_num]),3-s->init_num); return ssl2_part_read(s,SSL_F_GET_SERVER_VERIFY,i); } return(-1); return(-1); } } s->state=SSL2_ST_GET_CLIENT_FINISHED_B; s->state=SSL2_ST_GET_CLIENT_FINISHED_B; Loading Loading
CHANGES +1 −1 Original line number Original line Diff line number Diff line Loading @@ -115,7 +115,7 @@ *) Change ssl/s2_clnt.c and ssl/s3_srvr.c so that received handshake *) Change ssl/s2_clnt.c and ssl/s3_srvr.c so that received handshake messages are stored in a single piece (fixed-length part and messages are stored in a single piece (fixed-length part and variable-length part) and fix various bugs found on the way. variable-length part combined) and fix various bugs found on the way. [Bodo Moeller] [Bodo Moeller] *) In ssl3_get_client_hello (ssl/s3_srvr.c), generate a fatal alert *) In ssl3_get_client_hello (ssl/s3_srvr.c), generate a fatal alert Loading
ssl/s2_clnt.c +15 −6 Original line number Original line Diff line number Diff line Loading @@ -873,8 +873,8 @@ static int get_server_verify(SSL *s) p=(unsigned char *)s->init_buf->data; p=(unsigned char *)s->init_buf->data; if (s->state == SSL2_ST_GET_SERVER_VERIFY_A) if (s->state == SSL2_ST_GET_SERVER_VERIFY_A) { { i=ssl2_read(s,(char *)&(p[s->init_num]),3-s->init_num); i=ssl2_read(s,(char *)&(p[s->init_num]),1-s->init_num); if (i < (3-s->init_num)) if (i < (1-s->init_num)) return(ssl2_part_read(s,SSL_F_GET_SERVER_VERIFY,i)); return(ssl2_part_read(s,SSL_F_GET_SERVER_VERIFY,i)); s->init_num += i; s->init_num += i; Loading @@ -888,8 +888,12 @@ static int get_server_verify(SSL *s) SSL_R_READ_WRONG_PACKET_TYPE); SSL_R_READ_WRONG_PACKET_TYPE); } } else else SSLerr(SSL_F_GET_SERVER_VERIFY, { SSL_R_PEER_ERROR); SSLerr(SSL_F_GET_SERVER_VERIFY,SSL_R_PEER_ERROR); /* try to read the error message */ i=ssl2_read(s,(char *)&(p[s->init_num]),3-s->init_num); return ssl2_part_read(s,SSL_F_GET_SERVER_VERIFY,i); } return(-1); return(-1); } } } } Loading Loading @@ -923,8 +927,8 @@ static int get_server_finished(SSL *s) p=buf; p=buf; if (s->state == SSL2_ST_GET_SERVER_FINISHED_A) if (s->state == SSL2_ST_GET_SERVER_FINISHED_A) { { i=ssl2_read(s,(char *)&(buf[s->init_num]),3-s->init_num); i=ssl2_read(s,(char *)&(buf[s->init_num]),1-s->init_num); if (i < (3-s->init_num)) if (i < (1-s->init_num)) return(ssl2_part_read(s,SSL_F_GET_SERVER_FINISHED,i)); return(ssl2_part_read(s,SSL_F_GET_SERVER_FINISHED,i)); s->init_num += i; s->init_num += i; Loading @@ -941,7 +945,12 @@ static int get_server_finished(SSL *s) SSLerr(SSL_F_GET_SERVER_FINISHED,SSL_R_READ_WRONG_PACKET_TYPE); SSLerr(SSL_F_GET_SERVER_FINISHED,SSL_R_READ_WRONG_PACKET_TYPE); } } else else { SSLerr(SSL_F_GET_SERVER_FINISHED,SSL_R_PEER_ERROR); SSLerr(SSL_F_GET_SERVER_FINISHED,SSL_R_PEER_ERROR); /* try to read the error message */ i=ssl2_read(s,(char *)&(p[s->init_num]),3-s->init_num); return ssl2_part_read(s,SSL_F_GET_SERVER_VERIFY,i); } return(-1); return(-1); } } s->state=SSL2_ST_GET_SERVER_FINISHED_B; s->state=SSL2_ST_GET_SERVER_FINISHED_B; Loading
ssl/s2_srvr.c +8 −3 Original line number Original line Diff line number Diff line Loading @@ -801,10 +801,10 @@ static int get_client_finished(SSL *s) p=(unsigned char *)s->init_buf->data; p=(unsigned char *)s->init_buf->data; if (s->state == SSL2_ST_GET_CLIENT_FINISHED_A) if (s->state == SSL2_ST_GET_CLIENT_FINISHED_A) { { i=ssl2_read(s,(char *)&(p[s->init_num]),3-s->init_num); i=ssl2_read(s,(char *)&(p[s->init_num]),1-s->init_num); if (i < 3-s->init_num) if (i < 1-s->init_num) return(ssl2_part_read(s,SSL_F_GET_CLIENT_FINISHED,i)); return(ssl2_part_read(s,SSL_F_GET_CLIENT_FINISHED,i)); s->init_num = 3; s->init_num += i; if (*p != SSL2_MT_CLIENT_FINISHED) if (*p != SSL2_MT_CLIENT_FINISHED) { { Loading @@ -814,7 +814,12 @@ static int get_client_finished(SSL *s) SSLerr(SSL_F_GET_CLIENT_FINISHED,SSL_R_READ_WRONG_PACKET_TYPE); SSLerr(SSL_F_GET_CLIENT_FINISHED,SSL_R_READ_WRONG_PACKET_TYPE); } } else else { SSLerr(SSL_F_GET_CLIENT_FINISHED,SSL_R_PEER_ERROR); SSLerr(SSL_F_GET_CLIENT_FINISHED,SSL_R_PEER_ERROR); /* try to read the error message */ i=ssl2_read(s,(char *)&(p[s->init_num]),3-s->init_num); return ssl2_part_read(s,SSL_F_GET_SERVER_VERIFY,i); } return(-1); return(-1); } } s->state=SSL2_ST_GET_CLIENT_FINISHED_B; s->state=SSL2_ST_GET_CLIENT_FINISHED_B; Loading