diff options
author | Bodo Möller <bodo@openssl.org> | 2001-11-10 10:44:15 +0000 |
---|---|---|
committer | Bodo Möller <bodo@openssl.org> | 2001-11-10 10:44:15 +0000 |
commit | 2b90b1f344b50451673f02ae5ba1291779db544a (patch) | |
tree | b457e3bb03b5129403ff40d5ac325b64d46dd619 /ssl/s2_srvr.c | |
parent | 65123f8064934df6ab1149d3e0d60441a5699014 (diff) |
make code a little more similar to what it looked like before the fixes,
call ssl2_part_read again to parse error message
Diffstat (limited to 'ssl/s2_srvr.c')
-rw-r--r-- | ssl/s2_srvr.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/ssl/s2_srvr.c b/ssl/s2_srvr.c index ea07852d1a..58ee38963a 100644 --- a/ssl/s2_srvr.c +++ b/ssl/s2_srvr.c @@ -801,10 +801,10 @@ static int get_client_finished(SSL *s) p=(unsigned char *)s->init_buf->data; if (s->state == SSL2_ST_GET_CLIENT_FINISHED_A) { - i=ssl2_read(s,(char *)&(p[s->init_num]),3-s->init_num); - if (i < 3-s->init_num) + i=ssl2_read(s,(char *)&(p[s->init_num]),1-s->init_num); + if (i < 1-s->init_num) 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) { @@ -814,7 +814,12 @@ static int get_client_finished(SSL *s) SSLerr(SSL_F_GET_CLIENT_FINISHED,SSL_R_READ_WRONG_PACKET_TYPE); } else + { 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); } s->state=SSL2_ST_GET_CLIENT_FINISHED_B; |