mirror of
https://github.com/php/php-src.git
synced 2025-08-16 22:18:50 +02:00
Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0: Fix #81500: Interval serialization regression since 7.3.14 / 7.4.2
This commit is contained in:
commit
2e65c8e581
8 changed files with 27 additions and 11 deletions
4
NEWS
4
NEWS
|
@ -6,6 +6,10 @@ PHP NEWS
|
||||||
. Fixed bug #81518 (Header injection via default_mimetype / default_charset).
|
. Fixed bug #81518 (Header injection via default_mimetype / default_charset).
|
||||||
(cmb)
|
(cmb)
|
||||||
|
|
||||||
|
- Date:
|
||||||
|
. Fixed bug #81500 (Interval serialization regression since 7.3.14 / 7.4.2).
|
||||||
|
(cmb)
|
||||||
|
|
||||||
14 Oct 2021, PHP 8.1.0RC4
|
14 Oct 2021, PHP 8.1.0RC4
|
||||||
|
|
||||||
- CLI:
|
- CLI:
|
||||||
|
|
|
@ -3850,7 +3850,7 @@ static zval *date_interval_write_property(zend_object *object, zend_string *name
|
||||||
SET_VALUE_FROM_STRUCT(i, "i");
|
SET_VALUE_FROM_STRUCT(i, "i");
|
||||||
SET_VALUE_FROM_STRUCT(s, "s");
|
SET_VALUE_FROM_STRUCT(s, "s");
|
||||||
if (zend_string_equals_literal(name, "f")) {
|
if (zend_string_equals_literal(name, "f")) {
|
||||||
obj->diff->us = zval_get_double(value) * 1000000;
|
obj->diff->us = zend_dval_to_lval(zval_get_double(value) * 1000000.0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
SET_VALUE_FROM_STRUCT(invert, "invert");
|
SET_VALUE_FROM_STRUCT(invert, "invert");
|
||||||
|
@ -3968,12 +3968,8 @@ static int php_date_interval_initialize_from_hash(zval **return_value, php_inter
|
||||||
PHP_DATE_INTERVAL_READ_PROPERTY("s", s, timelib_sll, -1)
|
PHP_DATE_INTERVAL_READ_PROPERTY("s", s, timelib_sll, -1)
|
||||||
{
|
{
|
||||||
zval *z_arg = zend_hash_str_find(myht, "f", sizeof("f") - 1);
|
zval *z_arg = zend_hash_str_find(myht, "f", sizeof("f") - 1);
|
||||||
(*intobj)->diff->us = -1000000;
|
|
||||||
if (z_arg) {
|
if (z_arg) {
|
||||||
double val = zval_get_double(z_arg) * 1000000;
|
(*intobj)->diff->us = zend_dval_to_lval(zval_get_double(z_arg) * 1000000.0);
|
||||||
if (val >= 0 && val < 1000000) {
|
|
||||||
(*intobj)->diff->us = val;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
PHP_DATE_INTERVAL_READ_PROPERTY("weekday", weekday, int, -1)
|
PHP_DATE_INTERVAL_READ_PROPERTY("weekday", weekday, int, -1)
|
||||||
|
|
|
@ -43,5 +43,5 @@ object(DateInterval)#%d (16) {
|
||||||
["have_special_relative"]=>
|
["have_special_relative"]=>
|
||||||
int(0)
|
int(0)
|
||||||
["f"]=>
|
["f"]=>
|
||||||
float(-1)
|
float(0)
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,5 +43,5 @@ object(DateInterval)#%d (16) {
|
||||||
["have_special_relative"]=>
|
["have_special_relative"]=>
|
||||||
int(0)
|
int(0)
|
||||||
["f"]=>
|
["f"]=>
|
||||||
float(-1)
|
float(0)
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,7 +28,7 @@ object(DateInterval)#%d (16) {
|
||||||
["s"]=>
|
["s"]=>
|
||||||
int(-1)
|
int(-1)
|
||||||
["f"]=>
|
["f"]=>
|
||||||
float(-1)
|
float(0)
|
||||||
["weekday"]=>
|
["weekday"]=>
|
||||||
int(-1)
|
int(-1)
|
||||||
["weekday_behavior"]=>
|
["weekday_behavior"]=>
|
||||||
|
|
|
@ -20,7 +20,7 @@ object(DateInterval)#%d (16) {
|
||||||
["s"]=>
|
["s"]=>
|
||||||
int(0)
|
int(0)
|
||||||
["f"]=>
|
["f"]=>
|
||||||
float(-1)
|
float(%f)
|
||||||
["weekday"]=>
|
["weekday"]=>
|
||||||
int(0)
|
int(0)
|
||||||
["weekday_behavior"]=>
|
["weekday_behavior"]=>
|
||||||
|
|
16
ext/date/tests/bug81500.phpt
Normal file
16
ext/date/tests/bug81500.phpt
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
--TEST--
|
||||||
|
Bug #81500 (Interval serialization regression since 7.3.14 / 7.4.2)
|
||||||
|
--FILE--
|
||||||
|
<?php
|
||||||
|
$interval = new DateInterval('PT1S');
|
||||||
|
$interval->f = -0.000001;
|
||||||
|
var_dump($interval->s, $interval->f);
|
||||||
|
|
||||||
|
$interval = unserialize(serialize($interval));
|
||||||
|
var_dump($interval->s, $interval->f);
|
||||||
|
?>
|
||||||
|
--EXPECT--
|
||||||
|
int(1)
|
||||||
|
float(-1.0E-6)
|
||||||
|
int(1)
|
||||||
|
float(-1.0E-6)
|
|
@ -40,7 +40,7 @@ array(2) {
|
||||||
["s"]=>
|
["s"]=>
|
||||||
int(-1)
|
int(-1)
|
||||||
["f"]=>
|
["f"]=>
|
||||||
float(-1)
|
float(0)
|
||||||
["weekday"]=>
|
["weekday"]=>
|
||||||
int(-1)
|
int(-1)
|
||||||
["weekday_behavior"]=>
|
["weekday_behavior"]=>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue