Merge branch 'PHP-8.3' into PHP-8.4

* PHP-8.3:
  NEWS for hrtime in FTP and standard
  Handle broken hrtime in ftp
  Fix arginfo/zpp violation if zend_hrtime is not available
This commit is contained in:
Niels Dossche 2025-07-25 12:05:12 +02:00
commit 802e348b49
No known key found for this signature in database
GPG key ID: B8A8AD166DF0E2E5
3 changed files with 7 additions and 2 deletions

4
NEWS
View file

@ -12,6 +12,9 @@ PHP NEWS
. Fixed bug GH-18581 (Coerce numeric string keys from iterators when argument
unpacking). (ilutov)
- FTP:
. Fix theoretical issues with hrtime() not being available. (nielsdos)
- Hash:
. Fix crash on clone failure. (nielsdos)
@ -41,6 +44,7 @@ PHP NEWS
- Standard:
. Fixed OSS Fuzz #433303828 (Leak in failed unserialize() with opcache).
(ilutov)
. Fix theoretical issues with hrtime() not being available. (nielsdos)
31 Jul 2025, PHP 8.4.11

View file

@ -1491,7 +1491,8 @@ static int my_poll(php_socket_t fd, int events, int timeout) {
if (n == -1 && php_socket_errno() == EINTR) {
zend_hrtime_t delta_ns = zend_hrtime() - start_ns;
if (delta_ns > timeout_hr) {
/* delta_ns == 0 is only possible with a platform that does not support a high-res timer. */
if (delta_ns > timeout_hr || UNEXPECTED(delta_ns == 0)) {
#ifndef PHP_WIN32
errno = ETIMEDOUT;
#endif

View file

@ -46,7 +46,6 @@
delivered timestamp is monotonic and cannot be adjusted. */
PHP_FUNCTION(hrtime)
{
#if ZEND_HRTIME_AVAILABLE
bool get_as_num = 0;
zend_hrtime_t t = zend_hrtime();
@ -55,6 +54,7 @@ PHP_FUNCTION(hrtime)
Z_PARAM_BOOL(get_as_num)
ZEND_PARSE_PARAMETERS_END();
#if ZEND_HRTIME_AVAILABLE
if (UNEXPECTED(get_as_num)) {
PHP_RETURN_HRTIME(t);
} else {