bug77843.phpt 437 B

12345678910111213141516171819202122232425
  1. --TEST--
  2. Bug #77843: Use after free with json serializer
  3. --FILE--
  4. <?php
  5. class X implements JsonSerializable {
  6. public $prop = "value";
  7. public function jsonSerialize(): mixed {
  8. global $arr;
  9. unset($arr[0]);
  10. var_dump($this);
  11. return $this;
  12. }
  13. }
  14. $arr = [new X()];
  15. var_dump(json_encode([&$arr]));
  16. ?>
  17. --EXPECT--
  18. object(X)#1 (1) {
  19. ["prop"]=>
  20. string(5) "value"
  21. }
  22. string(20) "[[{"prop":"value"}]]"