summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crypto/bio/bss_bio.c1
-rw-r--r--ssl/ssl_stat.c2
-rw-r--r--ssl/ssltest.c15
3 files changed, 16 insertions, 2 deletions
diff --git a/crypto/bio/bss_bio.c b/crypto/bio/bss_bio.c
index ea9d5c714a..dae8b3b3e2 100644
--- a/crypto/bio/bss_bio.c
+++ b/crypto/bio/bss_bio.c
@@ -186,7 +186,6 @@ static int bio_read(BIO *bio, char *buf, int size_)
}
while (rest);
- peer_b->request -= size;
return size;
}
diff --git a/ssl/ssl_stat.c b/ssl/ssl_stat.c
index 09194888b5..3eca4ee601 100644
--- a/ssl/ssl_stat.c
+++ b/ssl/ssl_stat.c
@@ -282,6 +282,8 @@ case SSL3_ST_CR_SRVR_DONE_A: str="3RSD_A"; break;
case SSL3_ST_CR_SRVR_DONE_B: str="3RSD_B"; break;
case SSL3_ST_CW_CERT_A: str="3WCC_A"; break;
case SSL3_ST_CW_CERT_B: str="3WCC_B"; break;
+case SSL3_ST_CW_CERT_C: str="3WCC_C"; break;
+case SSL3_ST_CW_CERT_D: str="3WCC_D"; break;
case SSL3_ST_CW_KEY_EXCH_A: str="3WCKEA"; break;
case SSL3_ST_CW_KEY_EXCH_B: str="3WCKEB"; break;
case SSL3_ST_CW_CERT_VRFY_A: str="3WCV_A"; break;
diff --git a/ssl/ssltest.c b/ssl/ssltest.c
index 91813dc7da..2648304911 100644
--- a/ssl/ssltest.c
+++ b/ssl/ssltest.c
@@ -705,9 +705,21 @@ int doit_biopair(SSL *s_ssl, SSL *c_ssl, long count)
if (!progress && !prev_progress)
if (cw_num > 0 || cr_num > 0 || sw_num > 0 || sr_num > 0)
- /* can't happen */
{
fprintf(stderr, "ERROR: got stuck\n");
+ if (strcmp("SSLv2", SSL_get_version(c_ssl)) == 0)
+ {
+ fprintf(stderr, "This can happen for SSL2 because "
+ "CLIENT-FINISHED and SERVER-VERIFY are written \n"
+ "concurrently ...");
+ if (strncmp("2SCF", SSL_state_string(c_ssl), 4) == 0
+ && strncmp("2SSV", SSL_state_string(s_ssl), 4) == 0)
+ {
+ fprintf(stderr, " ok.\n");
+ goto end;
+ }
+ }
+ fprintf(stderr, " ERROR.\n");
goto err;
}
prev_progress = progress;
@@ -721,6 +733,7 @@ int doit_biopair(SSL *s_ssl, SSL *c_ssl, long count)
SSL_get_version(c_ssl),
SSL_CIPHER_get_version(ciph),
SSL_CIPHER_get_name(ciph));
+ end:
ret = 0;
err: