summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBodo Möller <bodo@openssl.org>2002-03-15 10:52:32 +0000
committerBodo Möller <bodo@openssl.org>2002-03-15 10:52:32 +0000
commit304d90425f88129911ec256fd840265fda97e9f1 (patch)
tree173f4175d96a0f42b3b8727357070d43b7ea2ed9
parentbfaa8a89e1b81fec52cc3fe15d507d838faac467 (diff)
fix ssl3_pending
-rw-r--r--CHANGES5
-rw-r--r--LICENSE2
-rw-r--r--ssl/s3_lib.c5
3 files changed, 10 insertions, 2 deletions
diff --git a/CHANGES b/CHANGES
index 64ff6e2251..ba42e28efd 100644
--- a/CHANGES
+++ b/CHANGES
@@ -40,6 +40,11 @@
*) applies to 0.9.6a ... 0.9.6d and 0.9.7
+) applies to 0.9.7 only
+ *) Fix ssl3_pending() (ssl/s3_lib.c) to prevent SSL_pending() from
+ returning non-zero before the data has been completely received
+ when using non-blocking I/O.
+ [Bodo Moeller; problem pointed out by John Hughes]
+
*) Some of the ciphers missed the strength entry (SSL_LOW etc).
[Ben Laurie, Lutz Jaenicke]
diff --git a/LICENSE b/LICENSE
index 3fd259ac32..7b93e0dbce 100644
--- a/LICENSE
+++ b/LICENSE
@@ -12,7 +12,7 @@
---------------
/* ====================================================================
- * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved.
+ * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/ssl/s3_lib.c b/ssl/s3_lib.c
index 31994985c9..4ccc70b061 100644
--- a/ssl/s3_lib.c
+++ b/ssl/s3_lib.c
@@ -56,7 +56,7 @@
* [including the GNU Public Licence.]
*/
/* ====================================================================
- * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved.
+ * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -943,6 +943,9 @@ SSL_CIPHER *ssl3_get_cipher(unsigned int u)
int ssl3_pending(SSL *s)
{
+ if (s->rstate == SSL_ST_READ_BODY)
+ return 0;
+
return (s->s3->rrec.type == SSL3_RT_APPLICATION_DATA) ? s->s3->rrec.length : 0;
}