]> granicus.if.org Git - php/commitdiff
group the change for bug #74720
authorAnatol Belski <ab@php.net>
Fri, 9 Jun 2017 21:47:15 +0000 (23:47 +0200)
committerAnatol Belski <ab@php.net>
Fri, 9 Jun 2017 21:47:15 +0000 (23:47 +0200)
ext/openssl/openssl.c

index 4adf9cb8f99451fa1705638bae4fabccf1671920..8418e4030c5f3e36a2d1067ee008eb704dd9d93e 100644 (file)
 #define HAVE_EVP_PKEY_EC 1
 #endif
 
+#ifdef PHP_WIN32
+#define PHP_OPENSSL_BIO_MODE_R(flags) (((flags) & PKCS7_BINARY) ? "rb" : "r")
+#define PHP_OPENSSL_BIO_MODE_W(flags) (((flags) & PKCS7_BINARY) ? "wb" : "w")
+#else
+#define PHP_OPENSSL_BIO_MODE_R(flags) "r"
+#define PHP_OPENSSL_BIO_MODE_W(flags) "w"
+#endif
+
 ZEND_DECLARE_MODULE_GLOBALS(openssl)
 
 /* FIXME: Use the openssl constants instead of
@@ -5008,7 +5016,7 @@ PHP_FUNCTION(openssl_pkcs7_verify)
                goto clean_exit;
        }
 
-       in = BIO_new_file(filename, (flags & PKCS7_BINARY) ? "rb" : "r");
+       in = BIO_new_file(filename, PHP_OPENSSL_BIO_MODE_R(flags));
        if (in == NULL) {
                php_openssl_store_errors();
                goto clean_exit;
@@ -5120,7 +5128,7 @@ PHP_FUNCTION(openssl_pkcs7_encrypt)
                return;
        }
 
-       infile = BIO_new_file(infilename, (flags & PKCS7_BINARY) ? "rb" : "r");
+       infile = BIO_new_file(infilename, PHP_OPENSSL_BIO_MODE_R(flags));
        if (infile == NULL) {
                php_openssl_store_errors();
                goto clean_exit;
@@ -5278,7 +5286,7 @@ PHP_FUNCTION(openssl_pkcs7_sign)
                goto clean_exit;
        }
 
-       infile = BIO_new_file(infilename, (flags & PKCS7_BINARY) ? "rb" : "r");
+       infile = BIO_new_file(infilename, PHP_OPENSSL_BIO_MODE_R(flags));
        if (infile == NULL) {
                php_openssl_store_errors();
                php_error_docref(NULL, E_WARNING, "error opening input file %s!", infilename);