diff options
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | ext/openssl/openssl.c | 9 | ||||
-rw-r--r-- | ext/openssl/tests/bug75307.phpt | 18 |
3 files changed, 24 insertions, 4 deletions
@@ -59,6 +59,7 @@ PHP NEWS - Openssl: . Fixed bug #75363 (openssl_x509_parse leaks memory). (Bob) + . Fixed bug #75307 (Wrong reflection for openssl_open function). (villfa) - PCRE: . Fixed bug #75207 (applied upstream patch for CVE-2016-1283). (Anatol) diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c index c740b5cda9..4abb11bf0c 100644 --- a/ext/openssl/openssl.c +++ b/ext/openssl/openssl.c @@ -364,17 +364,18 @@ ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_seal, 0, 0, 4) ZEND_ARG_INFO(0, data) ZEND_ARG_INFO(1, sealdata) - ZEND_ARG_INFO(1, ekeys) /* arary */ + ZEND_ARG_INFO(1, ekeys) /* array */ ZEND_ARG_INFO(0, pubkeys) /* array */ ZEND_ARG_INFO(0, method) ZEND_ARG_INFO(1, iv) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO(arginfo_openssl_open, 0) +ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_open, 0, 0, 4) ZEND_ARG_INFO(0, data) ZEND_ARG_INFO(1, opendata) ZEND_ARG_INFO(0, ekey) ZEND_ARG_INFO(0, privkey) + ZEND_ARG_INFO(0, method) ZEND_ARG_INFO(0, iv) ZEND_END_ARG_INFO() @@ -5988,7 +5989,7 @@ PHP_FUNCTION(openssl_verify) } /* }}} */ -/* {{{ proto int openssl_seal(string data, &string sealdata, &array ekeys, array pubkeys) +/* {{{ proto int openssl_seal(string data, &string sealdata, &array ekeys, array pubkeys [, string method [, &string iv]])) Seals data */ PHP_FUNCTION(openssl_seal) { @@ -6119,7 +6120,7 @@ clean_exit: } /* }}} */ -/* {{{ proto bool openssl_open(string data, &string opendata, string ekey, mixed privkey) +/* {{{ proto bool openssl_open(string data, &string opendata, string ekey, mixed privkey [, string method [, string iv]]) Opens data */ PHP_FUNCTION(openssl_open) { diff --git a/ext/openssl/tests/bug75307.phpt b/ext/openssl/tests/bug75307.phpt new file mode 100644 index 0000000000..606f7a523b --- /dev/null +++ b/ext/openssl/tests/bug75307.phpt @@ -0,0 +1,18 @@ +--TEST-- +Bug #75307 Wrong reflection for openssl_open function +--SKIPIF-- +<?php +if (!extension_loaded("openssl")) die("skip openssl not available"); +if (!extension_loaded("reflection")) die("skip reflection not available"); +?> +--FILE-- +<?php +$rf = new ReflectionFunction('openssl_open'); +var_dump($rf->getNumberOfParameters()); +var_dump($rf->getNumberOfRequiredParameters()); +?> +===DONE=== +--EXPECT-- +int(6) +int(4) +===DONE=== |