Prevent ERR_print_errors_fp crash on Win32 [from HEAD].
[openssl.git] / crypto / err / err_prn.c
index 4cdf342fa634c2dbbe1df484eb831181e53fafab..c298e161644eea0dbe798e42b4398e4f50a7a153 100644 (file)
@@ -86,7 +86,12 @@ void ERR_print_errors_cb(int (*cb)(const char *str, size_t len, void *u),
 #ifndef OPENSSL_NO_FP_API
 static int print_fp(const char *str, size_t len, void *fp)
        {
-       return fwrite(str, 1, len, fp);
+       BIO bio;
+
+       BIO_set(&bio,BIO_s_file());
+       BIO_set_fp(&bio,fp,BIO_NOCLOSE);
+
+       return BIO_printf(&bio, "%s", str);
        }
 void ERR_print_errors_fp(FILE *fp)
        {