[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