From: Richard Levitte Date: Fri, 8 Apr 2016 18:15:15 +0000 (+0200) Subject: BIO: respect opening in text mode X-Git-Tag: OpenSSL_1_1_0-pre5~81 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=2d897ae4d8af83d7920ac4c52d0cab32739d671b;p=oweals%2Fopenssl.git BIO: respect opening in text mode When a file is opened with BIO_new_file(), make sure that the internal mode TEXT vs BINARY setting reflects what's given in the mode string. Reviewed-by: Andy Polyakov --- diff --git a/crypto/bio/bss_file.c b/crypto/bio/bss_file.c index 081c7f1632..a37e89d935 100644 --- a/crypto/bio/bss_file.c +++ b/crypto/bio/bss_file.c @@ -164,6 +164,10 @@ BIO *BIO_new_file(const char *filename, const char *mode) { BIO *ret; FILE *file = file_fopen(filename, mode); + int fp_flags = BIO_CLOSE; + + if (strchr(mode, 'b') == NULL) + fp_flags |= BIO_FP_TEXT; if (file == NULL) { SYSerr(SYS_F_FOPEN, get_last_sys_error()); @@ -181,7 +185,7 @@ BIO *BIO_new_file(const char *filename, const char *mode) BIO_clear_flags(ret, BIO_FLAGS_UPLINK); /* we did fopen -> we disengage * UPLINK */ - BIO_set_fp(ret, file, BIO_CLOSE); + BIO_set_fp(ret, file, fp_flags); return (ret); }