1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 00:02:20 +01:00

Merge branch 'PHP-8.3' into PHP-8.4

* PHP-8.3:
  Fix reference support for intltz_get_offset()
This commit is contained in:
Niels Dossche
2025-04-20 14:23:56 +02:00
3 changed files with 32 additions and 5 deletions

3
NEWS
View File

@@ -24,6 +24,9 @@ PHP NEWS
. Fixed GH-18243 imagettftext() overflow/underflow on font size value.
(David Carlier)
- Intl:
. Fix reference support for intltz_get_offset(). (nielsdos)
- LDAP:
. Fixed bug GH-17776 (LDAP_OPT_X_TLS_* options can't be overridden). (Remi)
. Fix NULL deref on high modification key. (nielsdos)

View File

@@ -0,0 +1,26 @@
--TEST--
intltz_get_offset references
--EXTENSIONS--
intl
--FILE--
<?php
$tz = IntlTimeZone::createTimeZone('Europe/Brussels');
class Test {
public string $a, $b;
}
$test = new Test;
$test->a = $test->b = "hello";
$rawOffset =& $test->a;
$dstOffset =& $test->b;
intltz_get_offset($tz, 0.0, true, $rawOffset, $dstOffset);
var_dump($test);
?>
--EXPECT--
object(Test)#2 (2) {
["a"]=>
&string(7) "3600000"
["b"]=>
&string(1) "0"
}

View File

@@ -440,7 +440,7 @@ U_CFUNC PHP_FUNCTION(intltz_get_offset)
TIMEZONE_METHOD_INIT_VARS;
if (zend_parse_method_parameters(ZEND_NUM_ARGS(), getThis(),
"Odbz/z/", &object, TimeZone_ce_ptr, &date, &local, &rawOffsetArg,
"Odbzz", &object, TimeZone_ce_ptr, &date, &local, &rawOffsetArg,
&dstOffsetArg) == FAILURE) {
RETURN_THROWS();
}
@@ -452,10 +452,8 @@ U_CFUNC PHP_FUNCTION(intltz_get_offset)
INTL_METHOD_CHECK_STATUS(to, "error obtaining offset");
zval_ptr_dtor(rawOffsetArg);
ZVAL_LONG(rawOffsetArg, rawOffset);
zval_ptr_dtor(dstOffsetArg);
ZVAL_LONG(dstOffsetArg, dstOffset);
ZEND_TRY_ASSIGN_REF_LONG(rawOffsetArg, rawOffset);
ZEND_TRY_ASSIGN_REF_LONG(dstOffsetArg, dstOffset);
RETURN_TRUE;
}