php-src/ext/spl
Máté Kocsis adb45a63c0
Fix GH-9186 @strict-properties can be bypassed using unserialization (#9354)
* Emit deprecation warnings when adding dynamic properties to classes during unserialization - this will become an Error in php 9.0.
  (Adding dynamic properties in other contexts was already a deprecation warning - the use case of unserialization was overlooked)
* Throw an error when attempting to add a dynamic property to a `readonly` class when unserializing
* Add new serialization methods `__serialize`/`__unserialize` for SplFixedArray to avoid creating deprecated dynamic
  properties that would then be added to the backing fixed-size array
* Don't add named dynamic/declared properties (e.g. $obj->foo) of SplFixedArray to the backing array when unserializing
* Update tests to declare properties or to expect the deprecation warning
* Add news entry

Co-authored-by: Tyson Andre <tysonandre775@hotmail.com>
2022-08-30 07:46:32 -04:00
..
tests Fix GH-9186 @strict-properties can be bypassed using unserialization (#9354) 2022-08-30 07:46:32 -04:00
config.m4 Refactor SplFixedArray (#7168) 2021-06-18 15:22:52 +01:00
config.w32 Refactor SplFixedArray (#7168) 2021-06-18 15:22:52 +01:00
CREDITS
php_spl_arginfo.h Fix rc info of iterator_to_array (#9080) 2022-07-21 15:05:34 +02:00
php_spl.c Remove unnecessary include in SPL 2022-07-21 14:46:39 +01:00
php_spl.h Use ZEND_TLS for spl (#7043) 2021-05-26 09:36:23 +02:00
php_spl.stub.php Fix rc info of iterator_to_array (#9080) 2022-07-21 15:05:34 +02:00
spl_array_arginfo.h Declare ext/spl constants in stubs (#9226) 2022-08-02 16:37:12 +02:00
spl_array.c Fix GH-9186 @strict-properties can be bypassed using unserialization (#9354) 2022-08-30 07:46:32 -04:00
spl_array.h Declare ext/spl constants in stubs (#9226) 2022-08-02 16:37:12 +02:00
spl_array.stub.php Declare ext/spl constants in stubs (#9226) 2022-08-02 16:37:12 +02:00
spl_directory_arginfo.h Declare ext/spl constants in stubs (#9226) 2022-08-02 16:37:12 +02:00
spl_directory.c Declare ext/spl constants in stubs (#9226) 2022-08-02 16:37:12 +02:00
spl_directory.h Declare ext/spl constants in stubs (#9226) 2022-08-02 16:37:12 +02:00
spl_directory.stub.php Declare ext/spl constants in stubs (#9226) 2022-08-02 16:37:12 +02:00
spl_dllist_arginfo.h Declare ext/spl constants in stubs (#9226) 2022-08-02 16:37:12 +02:00
spl_dllist.c Declare ext/spl constants in stubs (#9226) 2022-08-02 16:37:12 +02:00
spl_dllist.h Declare ext/spl constants in stubs (#9226) 2022-08-02 16:37:12 +02:00
spl_dllist.stub.php Declare ext/spl constants in stubs (#9226) 2022-08-02 16:37:12 +02:00
spl_engine.h Refactor SplFixedArray (#7168) 2021-06-18 15:22:52 +01:00
spl_exceptions_arginfo.h Generate ext/spl class entries from stubs 2021-02-18 13:01:51 +01:00
spl_exceptions.c Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
spl_exceptions.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
spl_exceptions.stub.php Generate ext/spl class entries from stubs 2021-02-18 13:01:51 +01:00
spl_fixedarray_arginfo.h Fix GH-9186 @strict-properties can be bypassed using unserialization (#9354) 2022-08-30 07:46:32 -04:00
spl_fixedarray.c Fix GH-9186 @strict-properties can be bypassed using unserialization (#9354) 2022-08-30 07:46:32 -04:00
spl_fixedarray.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
spl_fixedarray.stub.php Fix GH-9186 @strict-properties can be bypassed using unserialization (#9354) 2022-08-30 07:46:32 -04:00
spl_functions.c SPL: minor refactoring (#8341) 2022-04-13 20:34:23 +01:00
spl_functions.h Declare ext/spl constants in stubs (#9226) 2022-08-02 16:37:12 +02:00
spl_heap_arginfo.h Declare ext/spl constants in stubs (#9226) 2022-08-02 16:37:12 +02:00
spl_heap.c Declare ext/spl constants in stubs (#9226) 2022-08-02 16:37:12 +02:00
spl_heap.h Declare ext/spl constants in stubs (#9226) 2022-08-02 16:37:12 +02:00
spl_heap.stub.php Declare ext/spl constants in stubs (#9226) 2022-08-02 16:37:12 +02:00
spl_iterators_arginfo.h Declare ext/spl constants in stubs (#9226) 2022-08-02 16:37:12 +02:00
spl_iterators.c Declare ext/spl constants in stubs (#9226) 2022-08-02 16:37:12 +02:00
spl_iterators.h Declare ext/spl constants in stubs (#9226) 2022-08-02 16:37:12 +02:00
spl_iterators.stub.php Declare ext/spl constants in stubs (#9226) 2022-08-02 16:37:12 +02:00
spl_observer_arginfo.h Declare ext/spl constants in stubs (#9226) 2022-08-02 16:37:12 +02:00
spl_observer.c Declare ext/standard constants in stubs - part 1 (#9404) 2022-08-24 16:09:48 +02:00
spl_observer.h Declare ext/spl constants in stubs (#9226) 2022-08-02 16:37:12 +02:00
spl_observer.stub.php Declare ext/spl constants in stubs (#9226) 2022-08-02 16:37:12 +02:00