Niels Dossche
ba0853888d
Fix GH-18304: Changing the properties of a DateInterval through dynamic properties triggers a SegFault
...
For dynamic fetches the cache_slot will be NULL, so we have to check for
that when resetting the cache. For zip and xmlreader this couldn't
easily be tested because of a lack of writable properties.
Closes GH-18307.
2025-04-11 23:33:58 +02:00
Niels Dossche
ce8ab5f16a
Fix GH-17736: Assertion failure zend_reference_destroy()
...
The cache slot for FETCH_OBJ_W in function `test` is primed with the
class for C. The next call uses a simplexml instance and reuses the same
cache slot. simplexml's get_property_ptr handler does not use the cache
slot, so the old values remain in the cache slot. When
`zend_handle_fetch_obj_flags` is called this is not guarded by a check
for the class entry. So we end up using the prop_info from the property
C::$a instead of the simplexml property.
This patch adds a reset to the cache slots in the property address fetch
code and also in the extensions with a non-standard reference handler.
This keeps the run time cache consistent and avoids the issue without
complicating the fast paths.
Closes GH-17739.
2025-03-02 22:33:32 +01:00
David Carlier
16c0e57530
Fix GH-14709 overflow on recurrences for DatePeriod::__construct
...
close GH-14710
2024-12-20 15:03:47 +00:00
Christoph M. Becker
8df513336a
Merge branch 'PHP-8.2' into PHP-8.3
...
* PHP-8.2:
Fix GH-14732: date_sun_info() fails for non-finite values
2024-11-01 23:47:21 +01:00
Christoph M. Becker
f9453a889d
Fix GH-14732: date_sun_info() fails for non-finite values
...
`timelib_astro_rise_set_altitude()` is not prepared to deal with non-
finite values (`nan`, `inf` and `-inf`) for `lon` and `lat`; instead
these trigger undefined behavior. Thus we catch non-finite values
before even calling that timelib function; for `date_sun_info()` we
trigger `ValueError`s; for `date_sunrise()` and `date_sunset()` we
silently return `false`, since these functions will be sunsetted
anyway.
Closes GH-16497.
2024-11-01 23:46:19 +01:00
Derick Rethans
8acdde5b10
Merge branch 'PHP-8.2' into PHP-8.3
2024-10-18 12:38:06 +01:00
Derick Rethans
b2b294a2b2
Fixed bug GH-16037 (Assertion failure in ext/date/php_date.c)
2024-10-18 12:37:03 +01:00
Christoph M. Becker
64f312f123
Merge branch 'PHP-8.2' into PHP-8.3
...
* PHP-8.2:
Fix GH-16454: Unhandled INF in date_sunset() with tiny $utcOffset
2024-10-18 13:22:55 +02:00
Christoph M. Becker
9bc34182b6
Fix GH-16454: Unhandled INF in date_sunset() with tiny $utcOffset
...
After normalization, `N` is supposed to be in range [0, 24], but for
very large and very small `$utcOffset` this is not necessarily the
case, since the normalization might yied `-inf` or `inf`. If that
happens, we let the function fail silently, since it is highly unlikely
that such `$utcOffset`s are passed in practice.
Closes GH-16483.
2024-10-18 13:21:57 +02:00
Máté Kocsis
cb69900407
Add missing returns in ext/date for PHP 8.3+ ( #15735 )
...
Issues originally found in #15598
2024-09-14 22:15:22 +02:00
Derick Rethans
fecad54d74
Backport fix from PHP 8.3: The exception handler already takes care of destroying the return value
2024-09-13 11:04:45 +01:00
Derick Rethans
9ebdbe2f41
Merge branch 'PHP-8.2' into PHP-8.3
2024-09-11 16:41:30 +01:00
Derick Rethans
f752e23cff
Fix GH-15582: Crash when not calling parent constructor of DateTimeZone
2024-09-11 16:37:40 +01:00
Máté Kocsis
1663ed6c6e
Merge branch 'PHP-8.2' into PHP-8.3
...
* PHP-8.2:
Add missing return for DatePeriod::__unserialize
2024-09-03 21:31:00 +02:00
Máté Kocsis
6cab76986d
Add missing return for DatePeriod::__unserialize
...
Additionally, add other RETURN_THROWS() defensively.
2024-09-03 21:27:50 +02:00
Derick Rethans
1bddd4ef44
Merge branch 'PHP-8.2'
2023-08-10 12:11:35 +01:00
Derick Rethans
e157da11f3
Update initialisation check for new PHP-8.3 API
2023-08-09 20:12:41 +01:00
Derick Rethans
b71d2e16e6
Fix GH-11416: Crash with DatePeriod when uninitialised objects are passed in (PHP 8.2+)
2023-08-09 16:10:14 +01:00
Derick Rethans
f8b42da3a4
Merge branch 'PHP-8.2'
2023-08-09 15:39:31 +01:00
Derick Rethans
7f6e98cec7
Merge branch 'PHP-8.1' into PHP-8.2
2023-08-09 15:39:25 +01:00
Derick Rethans
4833b84854
Fix GH-11416: Crash with DatePeriod when uninitialised objects are passed in
2023-08-09 15:39:13 +01:00
Derick Rethans
82ff4c5e84
Make the new DatePeriod::createFromISO8601String method emit DateTimeImmutable objects
2023-07-25 18:43:45 +01:00
Derick Rethans
b669cb4c1b
CS
2023-07-25 18:43:45 +01:00
Máté Kocsis
9c7c0a0b93
Implement DatePeriod::createFromISO8601String()
2023-07-18 12:59:21 +02:00
Derick Rethans
783197623d
Merge branch 'PHP-8.2'
2023-06-22 19:06:21 +01:00
Derick Rethans
1b5360587e
Merge branch 'PHP-8.1' into PHP-8.2
2023-06-22 19:06:08 +01:00
Derick Rethans
0747616f84
Fixed GH-11368: Date modify returns invalid datetime
2023-06-22 17:58:19 +01:00
nielsdos
12e4628815
Merge branch 'PHP-8.2'
...
* PHP-8.2:
Fix GH-11455: Segmentation fault with custom object date properties
Revert "Fix GH-11404: DOMDocument::savexml and friends ommit xmlns="" declaration for null namespace, creating incorrect xml representation of the DOM"
2023-06-19 19:45:24 +02:00
Niels Dossche
93becab506
Fix GH-11455: Segmentation fault with custom object date properties
...
Closes GH-11473.
2023-06-19 19:42:09 +02:00
nielsdos
505a30cbbc
Merge branch 'PHP-8.2'
...
* PHP-8.2:
Fix GH-11281: DateTimeZone::getName() does not include seconds in offset
2023-05-23 18:57:09 +02:00
nielsdos
caab608d57
Merge branch 'PHP-8.1' into PHP-8.2
...
* PHP-8.1:
Fix GH-11281: DateTimeZone::getName() does not include seconds in offset
2023-05-23 18:56:40 +02:00
Niels Dossche
f9117eb824
Fix GH-11281: DateTimeZone::getName() does not include seconds in offset
...
If the seconds portion is non-zero, include the seconds in the output.
Closes GH-11282.
2023-05-23 18:52:07 +02:00
Derick Rethans
7e224195ab
Merge branch 'PHP-8.2'
2023-03-23 14:51:24 +00:00
Derick Rethans
50ca489aa5
Merge branch 'PHP-8.1' into PHP-8.2
2023-03-23 14:49:18 +00:00
Derick Rethans
cbac68df6b
Fix GH-10583: DateTime modify with tz pattern should not update linked timezone
2023-03-23 11:46:31 +00:00
Ilija Tovilo
9d5f2f1343
Use new ZSTR_INIT_LITERAL macro ( #10879 )
2023-03-20 16:19:05 +01:00
Derick Rethans
b96a382419
Merge branch 'PHP-8.2'
2023-03-13 11:04:01 +00:00
Derick Rethans
ce5f75fb6f
Fixed oss-fuzz #56931
2023-03-13 09:38:11 +00:00
Derick Rethans
afd42610c0
Merge branch 'PHP-8.2'
2023-03-10 14:43:51 +00:00
Derick Rethans
a225581833
Fix GH-10747: Private and protected properties in serialized Date* objects throw
2023-03-10 14:39:22 +00:00
Max Kellermann
1287747a9a
ext: make various internal functions static ( #10650 )
...
Namely in:
* ext/date
* ext/libxml
* ext/dba
* ext/curl
2023-02-21 15:51:41 +00:00
Max Kellermann
263b22f374
Make lots of string pointers const
( #10646 )
...
This allows using string literals without implicitly casting away the
`const`.
2023-02-21 14:01:37 +00:00
Max Kellermann
413844d626
Zend/zend_types.h: deprecate zend_bool, zend_intptr_t, zend_uintptr_t ( #10597 )
...
These types are standard C99.
For compatibility with out-of-tree extensions, keep the typedefs
in main/php.h.
2023-02-18 19:31:28 +00:00
Derick Rethans
a92ecdb140
Merge branch 'PHP-8.2'
2023-02-10 14:45:41 +00:00
Derick Rethans
5d9ee8f920
Fixed OSS fuzz issues #55589 , #55599 , and #55727
2023-02-10 13:03:47 +00:00
Derick Rethans
b7860cd564
Implement More Appropriate Date/Time Exceptions RFC
2023-02-08 10:27:33 +00:00
Derick Rethans
8d5953c002
Merge branch 'PHP-8.2'
2023-01-31 13:00:13 +00:00
Derick Rethans
cb907d50a8
Merge branch 'PHP-8.1' into PHP-8.2
2023-01-31 13:00:06 +00:00
Derick Rethans
a42bf93308
Fixed GH-10447: 'p' format specifier does not yield 'Z' for 00:00
2023-01-31 12:58:21 +00:00
Derick Rethans
71766d78b7
Merge branch 'PHP-8.2'
2023-01-31 12:55:30 +00:00