[openssl-commits] [openssl] OpenSSL_1_1_0-stable update

Matt Caswell matt at openssl.org
Fri Jul 14 10:26:10 UTC 2017


The branch OpenSSL_1_1_0-stable has been updated
       via  190909aaabf1d8abf48b0c92a9d425c8f0bd2481 (commit)
       via  fb9f42e04d1f20ac7d0179d07f4ab7f559948fa6 (commit)
      from  833104e6bdfc41db06bf22e129d0ab43278628c5 (commit)


- Log -----------------------------------------------------------------
commit 190909aaabf1d8abf48b0c92a9d425c8f0bd2481
Author: Roelof duToit <r at dutoit.za.net>
Date:   Thu Jul 13 14:09:19 2017 -0400

    Update PR#3925
    
    Reviewed-by: Tim Hudson <tjh at openssl.org>
    Reviewed-by: Bernd Edlinger <bernd.edlinger at hotmail.de>
    Reviewed-by: Matt Caswell <matt at openssl.org>
    (Merged from https://github.com/openssl/openssl/pull/3925)

commit fb9f42e04d1f20ac7d0179d07f4ab7f559948fa6
Author: Roelof duToit <r at dutoit.za.net>
Date:   Thu Jul 13 13:07:26 2017 -0400

    Retry SSL_read on ERROR_WANT_READ.
    This resolves the retry issue in general, but also the specific case where a TLS 1.3 server sends a post-handshake NewSessionTicket message prior to appdata.
    
    Reviewed-by: Tim Hudson <tjh at openssl.org>
    Reviewed-by: Bernd Edlinger <bernd.edlinger at hotmail.de>
    Reviewed-by: Matt Caswell <matt at openssl.org>
    (Merged from https://github.com/openssl/openssl/pull/3925)

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

Summary of changes:
 apps/s_time.c | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/apps/s_time.c b/apps/s_time.c
index 263502c..3459573 100644
--- a/apps/s_time.c
+++ b/apps/s_time.c
@@ -229,8 +229,10 @@ int s_time_main(int argc, char **argv)
                                    fmt_http_get_cmd, www_path);
             if (SSL_write(scon, buf, buf_len) <= 0)
                 goto end;
-            while ((i = SSL_read(scon, buf, sizeof(buf))) > 0)
-                bytes_read += i;
+            while ((i = SSL_read(scon, buf, sizeof(buf))) > 0 ||
+                        SSL_get_error(scon, i) == SSL_ERROR_WANT_READ ||
+                        SSL_get_error(scon, i) == SSL_ERROR_WANT_WRITE)
+                if (i > 0) bytes_read += i;
         }
 #ifdef NO_SHUTDOWN
         SSL_set_shutdown(scon, SSL_SENT_SHUTDOWN | SSL_RECEIVED_SHUTDOWN);
@@ -287,7 +289,9 @@ int s_time_main(int argc, char **argv)
                                fmt_http_get_cmd, www_path);
         if (SSL_write(scon, buf, buf_len) <= 0)
             goto end;
-        while (SSL_read(scon, buf, sizeof(buf)) > 0)
+        while ((i = SSL_read(scon, buf, sizeof(buf))) > 0 ||
+                    SSL_get_error(scon, i) == SSL_ERROR_WANT_READ ||
+                    SSL_get_error(scon, i) == SSL_ERROR_WANT_WRITE)
             continue;
     }
 #ifdef NO_SHUTDOWN
@@ -318,8 +322,10 @@ int s_time_main(int argc, char **argv)
                          www_path);
             if (SSL_write(scon, buf, strlen(buf)) <= 0)
                 goto end;
-            while ((i = SSL_read(scon, buf, sizeof(buf))) > 0)
-                bytes_read += i;
+            while ((i = SSL_read(scon, buf, sizeof(buf))) > 0 ||
+                        SSL_get_error(scon, i) == SSL_ERROR_WANT_READ ||
+                        SSL_get_error(scon, i) == SSL_ERROR_WANT_WRITE)
+                if (i > 0) bytes_read += i;
         }
 #ifdef NO_SHUTDOWN
         SSL_set_shutdown(scon, SSL_SENT_SHUTDOWN | SSL_RECEIVED_SHUTDOWN);


More information about the openssl-commits mailing list