[openssl] master update

Richard Levitte levitte at openssl.org
Wed Oct 21 06:04:17 UTC 2020


The branch master has been updated
       via  8300a8742b2abc487594a09b5e6ee726dbd30771 (commit)
      from  0a737e16b2bc333cc3a8727458acc5460be10e0e (commit)


- Log -----------------------------------------------------------------
commit 8300a8742b2abc487594a09b5e6ee726dbd30771
Author: Richard Levitte <levitte at openssl.org>
Date:   Tue Oct 20 06:48:10 2020 +0200

    Work around Windows ftell() bug as per Microsoft engineering's suggestion
    
    See
    https://developercommunity.visualstudio.com/content/problem/425878/fseek-ftell-fail-in-text-mode-for-unix-style-text.html
    
    Reviewed-by: Paul Dale <paul.dale at oracle.com>
    (Merged from https://github.com/openssl/openssl/pull/13190)

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

Summary of changes:
 crypto/bio/bss_file.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/crypto/bio/bss_file.c b/crypto/bio/bss_file.c
index a57bd973f7..986fba874a 100644
--- a/crypto/bio/bss_file.c
+++ b/crypto/bio/bss_file.c
@@ -237,6 +237,15 @@ static long file_ctrl(BIO *b, int cmd, long num, void *ptr)
                 _setmode(fd, _O_TEXT);
             else
                 _setmode(fd, _O_BINARY);
+            /*
+             * Reports show that ftell() isn't trustable in text mode.
+             * This has been confirmed as a bug in the Universal C RTL, see
+             * https://developercommunity.visualstudio.com/content/problem/425878/fseek-ftell-fail-in-text-mode-for-unix-style-text.html
+             * The suggested work-around from Microsoft engineering is to
+             * turn off buffering until the bug is resolved.
+             */
+            if ((num & BIO_FP_TEXT) != 0)
+                setvbuf((FILE *)ptr, NULL, _IONBF, 0);
 # elif defined(OPENSSL_SYS_MSDOS)
             int fd = fileno((FILE *)ptr);
             /* Set correct text/binary mode */


More information about the openssl-commits mailing list