mirror of https://github.com/openssl/openssl.git
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@oracle.com> (Merged from https://github.com/openssl/openssl/pull/13190)
This commit is contained in:
parent
0a737e16b2
commit
8300a8742b
|
@ -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 */
|
||||
|
|
Loading…
Reference in New Issue