[openssl-commits] [openssl] master update

Rich Salz rsalz at openssl.org
Tue Mar 7 15:04:59 UTC 2017


The branch master has been updated
       via  9015d34e141af747f7c750f8d08f862b2a8273c7 (commit)
      from  f8418d87e191e46b81e1b9548326ab2876fa0907 (commit)


- Log -----------------------------------------------------------------
commit 9015d34e141af747f7c750f8d08f862b2a8273c7
Author: Rich Salz <rsalz at openssl.org>
Date:   Thu Feb 16 11:13:47 2017 -0500

    Get pointer type right in BIO_ssl_shutdown()
    
    Also, restore 1.0.2 behavior of looping over all BIO's in the chain.
    Thanks to Joseph Bester for finding this and suggesting a fix to the
    crash.
    
    Reviewed-by: Tim Hudson <tjh at openssl.org>
    (Merged from https://github.com/openssl/openssl/pull/2651)

-----------------------------------------------------------------------

Summary of changes:
 ssl/bio_ssl.c | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/ssl/bio_ssl.c b/ssl/bio_ssl.c
index 8b5036f..29ae258 100644
--- a/ssl/bio_ssl.c
+++ b/ssl/bio_ssl.c
@@ -506,12 +506,13 @@ int BIO_ssl_copy_session_id(BIO *t, BIO *f)
 
 void BIO_ssl_shutdown(BIO *b)
 {
-    SSL *s;
-
-    b = BIO_find_type(b, BIO_TYPE_SSL);
-    if (b == NULL)
-        return;
-
-    s = BIO_get_data(b);
-    SSL_shutdown(s);
+    BIO_SSL *bdata;
+
+    for (; b != NULL; b = BIO_next(b)) {
+        if (BIO_method_type(b) != BIO_TYPE_SSL)
+            continue;
+        bdata = BIO_get_data(b);
+        if (bdata != NULL && bdata->ssl != NULL)
+            SSL_shutdown(bdata->ssl);
+    }
 }


More information about the openssl-commits mailing list