Niels Dossche
ff2c7dc0f8
Fix leaks with multiple calls to DatePeriod iterator current()
...
Destroy the old value first. We can't skip recreating the value because
the object may have been changed in between calls.
Closes GH-18624.
2025-05-26 19:40:41 +02:00
David Carlier
0227d96f48
Fix GH-18481: date_sunrise check sun rise with offset if is finite/is nan
...
close GH-18484
2025-05-03 16:56:09 +01:00
Carlos Buenosvinos
c9f3127ca8
Fix GH-18076: date_sun_info() function returns inaccurate sunrise and sunset times
...
Closes GH-18317: Avoid double counting the 15 minutes radial correction of the sun
2025-04-22 16:45:57 +01:00
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