Description
The following code:
<?php
class a {
function __destruct() {
ob_start(function () use (&$c) {
$c = new A;
!self::$b =$ $x;
}, 1);
$c = new A;
$array = array($c);
header(' ');
print_r($array);
}
}
new a;
Resulted in this output:
AddressSanitizer:DEADLYSIGNAL
=================================================================
==472987==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x55a23e17393a bp 0x7ffd7eb42480 sp 0x7ffd7eb42360 T0)
==472987==The signal is caused by a WRITE memory access.
==472987==Hint: address points to the zero page.
Commit:
Configuration:
CC="clang" CXX="clang++" CFLAGS="-fsanitize=address -g -O0" CXXFLAGS="-fsanitize=address -g -O0" ./configure --enable-debug --enable-address-sanitizer --disable-shared --with-pic
PHP Version
PHP 8.6.0-dev (cli) (built: Oct 29 2025 14:18:41) (NTS DEBUG)
Copyright (c) The PHP Group
Zend Engine v4.6.0-dev, Copyright (c) Zend Technologies
with Zend OPcache v8.6.0-dev, Copyright (c), by Zend Technologies
Operating System
Ubuntu 22.04