1
0
mirror of https://github.com/php/php-src.git synced 2026-04-24 08:28:26 +02:00
Files
archived-php-src/ext
Sergei Turchanov 90f2e7607a Reset inheritance_cache pointer of zend_class_entry upon serialization (#12401)
to opcache filecache. Usually, when a class is being loaded, a dependency
tracking is performed after the call to zend_file_cache_script_store.
But sometimes, when opcache cache is empty and there are many simultaneous
outstanding requests for compilation, some classes do have their
inheritance_cache initialized before the call to zend_file_cache_script_store,
and in that case this pointer is serialized as-is. And when such a class
is loaded from opcache filecache this pointer also loaded as-is, and now
it points to some random location in memory. This causes segfaults occuring
when traversing inheritance_cache of such classes.

We need to reset inheritance_cache pointer of zend_class_entry
upon serialization. This should have been done anyway since it is a sensible
strategy to sanitize any memory pointer upon serialization (either by calling
SERIALIZE_x macros or setting to NULL or any other deterministic value).
2023-10-11 09:57:18 +03:00
..
2022-06-25 07:39:55 +01:00
2022-07-27 12:13:32 +02:00
2022-09-13 11:33:09 +01:00
2023-08-19 23:09:22 +01:00
2023-08-17 18:45:10 +01:00
2023-03-27 16:33:36 +02:00
2023-03-27 16:33:36 +02:00
2023-03-01 23:02:03 +01:00
2023-03-27 16:33:36 +02:00