summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXinchen Hui <laruence@gmail.com>2016-01-21 13:32:08 +0800
committerXinchen Hui <laruence@gmail.com>2016-01-21 13:32:08 +0800
commit62f3e5adf88ded51a0112977ff2a269bea58d44d (patch)
tree2495016ed4891e9d3eabb9b1cf2621a1740e25f9
parent62c1c11ad34103729988df9edea343337a900ba9 (diff)
parent50c255d16c58b4957077fd243c2768090c53e6ca (diff)
downloadphp-git-62f3e5adf88ded51a0112977ff2a269bea58d44d.tar.gz
Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src: re-arrange NEWS 5.6.19 will be next Fix test when run with openssl < 1.0.2 (reorder so no more SSLv2 message) Fix skip message to work fix ReflectionClass::__toString doc block omitted fix ReflectionClass::__toString doc block omitted improve fix for bug #71201 improve fix for bug #71201
-rw-r--r--ext/reflection/php_reflection.c2
-rw-r--r--ext/standard/math.c12
-rw-r--r--ext/standard/tests/streams/stream_socket_enable_crypto.phpt8
3 files changed, 14 insertions, 8 deletions
diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c
index 7713137e89..461104f394 100644
--- a/ext/reflection/php_reflection.c
+++ b/ext/reflection/php_reflection.c
@@ -386,7 +386,7 @@ static void _class_string(string *str, zend_class_entry *ce, zval *obj, char *in
/* TBD: Repair indenting of doc comment (or is this to be done in the parser?) */
if (ce->type == ZEND_USER_CLASS && ce->info.user.doc_comment) {
- string_printf(str, "%s%s", indent, ce->info.user.doc_comment);
+ string_printf(str, "%s%s", indent, ZSTR_VAL(ce->info.user.doc_comment));
string_write(str, "\n", 1);
}
diff --git a/ext/standard/math.c b/ext/standard/math.c
index 7ea8dc1199..ebfee8ead8 100644
--- a/ext/standard/math.c
+++ b/ext/standard/math.c
@@ -146,6 +146,7 @@ PHPAPI double _php_math_round(double value, int places, int mode) {
return value;
}
+ places = places < INT_MIN+1 ? INT_MIN+1 : places;
precision_places = 14 - php_intlog10abs(value);
f1 = php_intpow10(abs(places));
@@ -154,8 +155,10 @@ PHPAPI double _php_math_round(double value, int places, int mode) {
the requested places BUT is small enough to make sure a non-zero value
is returned, pre-round the result to the precision */
if (precision_places > places && precision_places - places < 15) {
- f2 = php_intpow10(abs(precision_places));
- if (precision_places >= 0) {
+ int64_t use_precision = precision_places < INT_MIN+1 ? INT_MIN+1 : precision_places;
+
+ f2 = php_intpow10(abs((int)use_precision));
+ if (use_precision >= 0) {
tmp_value = value * f2;
} else {
tmp_value = value / f2;
@@ -163,8 +166,11 @@ PHPAPI double _php_math_round(double value, int places, int mode) {
/* preround the result (tmp_value will always be something * 1e14,
thus never larger than 1e15 here) */
tmp_value = php_round_helper(tmp_value, mode);
+
+ use_precision = places - precision_places;
+ use_precision = use_precision < INT_MIN+1 ? INT_MIN+1 : use_precision;
/* now correctly move the decimal point */
- f2 = php_intpow10(abs(places - precision_places));
+ f2 = php_intpow10(abs((int)use_precision));
/* because places < precision_places */
tmp_value = tmp_value / f2;
} else {
diff --git a/ext/standard/tests/streams/stream_socket_enable_crypto.phpt b/ext/standard/tests/streams/stream_socket_enable_crypto.phpt
index e316096525..f282c8455b 100644
--- a/ext/standard/tests/streams/stream_socket_enable_crypto.phpt
+++ b/ext/standard/tests/streams/stream_socket_enable_crypto.phpt
@@ -5,7 +5,7 @@ marcosptf - <marcosptf@yahoo.com.br> - #phparty7 - @phpsp - novatec/2015 - sao p
--SKIPIF--
<?php
if (phpversion() < "5.3.0") { die('SKIP php version so lower.'); }
-if (!extension_loaded('openssl')) { die('ext/openssl required'); }
+if (!extension_loaded('openssl')) { die('skip ext/openssl required'); }
if(substr(PHP_OS, 0, 3) == 'WIN' ) {
die('skip not for windows');
}
@@ -18,8 +18,8 @@ $sock = stream_socket_server($serverUri, $errno, $errstr);
if (is_resource($sock)) {
var_dump(stream_socket_enable_crypto($sock, false));
var_dump(stream_socket_enable_crypto($sock, true));
- var_dump(stream_socket_enable_crypto($sock, true, STREAM_CRYPTO_METHOD_SSLv2_CLIENT));
var_dump(stream_socket_enable_crypto($sock, true, STREAM_CRYPTO_METHOD_SSLv3_CLIENT));
+ var_dump(stream_socket_enable_crypto($sock, true, STREAM_CRYPTO_METHOD_SSLv2_CLIENT));
var_dump(stream_socket_enable_crypto($sock, true, STREAM_CRYPTO_METHOD_SSLv23_CLIENT));
var_dump(stream_socket_enable_crypto($sock, true, STREAM_CRYPTO_METHOD_TLS_CLIENT));
var_dump(stream_socket_enable_crypto($sock, true, STREAM_CRYPTO_METHOD_SSLv2_SERVER));
@@ -43,10 +43,10 @@ bool(false)
Warning: stream_socket_enable_crypto(): When enabling encryption you must specify the crypto type in %s on line %d
bool(false)
-Warning: stream_socket_enable_crypto(): SSLv2 %s in %s on line %d
+Warning: stream_socket_enable_crypto(): SSL: Broken pipe in %s on line %d
bool(false)
-Warning: stream_socket_enable_crypto(): SSL: Broken pipe in %s on line %d
+Warning: stream_socket_enable_crypto(): SSL/TLS already set-up for this stream in %s on line %d
bool(false)
Warning: stream_socket_enable_crypto(): SSL/TLS already set-up for this stream in %s on line %d