fix ssl3_pending
authorBodo Möller <bodo@openssl.org>
Fri, 15 Mar 2002 10:52:32 +0000 (10:52 +0000)
committerBodo Möller <bodo@openssl.org>
Fri, 15 Mar 2002 10:52:32 +0000 (10:52 +0000)
CHANGES
LICENSE
ssl/s3_lib.c

diff --git a/CHANGES b/CHANGES
index 64ff6e2251987730230a203bcd8efe014bc2ac46..ba42e28efd6bd6700b19dff8a3e7f772c0d797ec 100644 (file)
--- a/CHANGES
+++ b/CHANGES
          *) 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 3fd259ac323da9a6ae59f4409828d78c34d7acea..7b93e0dbcea5639be66f296404b361d174508bd1 100644 (file)
--- 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
index 31994985c9f0603f4d410e02a64aa1ec1f36a5c6..4ccc70b061bc9a545dbfae6f0e0fdca672ecaa13 100644 (file)
@@ -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;
        }