diff options
-rw-r--r-- | ext/reflection/php_reflection.c | 2 | ||||
-rw-r--r-- | ext/standard/math.c | 12 | ||||
-rw-r--r-- | ext/standard/tests/streams/stream_socket_enable_crypto.phpt | 8 |
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 |