[php-src] master: ext/standard: Add regression test for GH-21824 (#21828)
| From: | Pratik Bhujel via GitHub | Date: | Fri, 23 Oct 2026 04:30:03 +0000 |
| Subject: | [php-src] master: ext/standard: Add regression test for GH-21824 (#21828) | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-142620@lists.php.net to get a copy of this message | ||
Author: Pratik Bhujel (prateekbhujel)
Committer: GitHub (web-flow)
Pusher: devnexen
Date: 2026-10-23T05:29:59+01:00
Commit: https://github.com/php/php-src/commit/981c083a6528fb1b062b5ab9fe3bdcc46924eecc
Raw diff: https://github.com/php/php-src/commit/981c083a6528fb1b062b5ab9fe3bdcc46924eecc.diff
ext/standard: Add regression test for GH-21824 (#21828)
Changed paths:
A ext/standard/tests/serialize/gh21824.phpt
Diff:
diff --git a/ext/standard/tests/serialize/gh21824.phpt b/ext/standard/tests/serialize/gh21824.phpt
new file mode 100644
index 000000000000..90de1482bd66
--- /dev/null
+++ b/ext/standard/tests/serialize/gh21824.phpt
@@ -0,0 +1,24 @@
+--TEST--
+GH-21824 (Crash in unserialize() with destructor reentry)
+--ENV--
+USE_ZEND_ALLOC=0
+--FILE--
+<?php
+class Trigger {
+ public function __destruct() {
+ unserialize('i:1;');
+ }
+}
+
+$payload = 'a:1019:{';
+for ($i = 0; $i < 1017; $i++) {
+ $payload .= "i:$i;s:1:\"A\";";
+}
+$payload .= 'i:1017;O:7:"Trigger":0:{}';
+$payload .= 'i:1017;i:0;}';
+
+unserialize($payload);
+echo "Done\n";
+?>
+--EXPECT--
+Done