Browse Source

Merge branch 'PHP-8.4'

* PHP-8.4:
  Leak in failed unserialize() with opcache
pull/17926/merge
Ilija Tovilo 3 months ago
parent
commit
5b05d429f2
No known key found for this signature in database GPG Key ID: 5050C66BFCD1015A
  1. 13
      ext/standard/tests/serialize/oss_fuzz_433303828.phpt
  2. 2
      ext/standard/var_unserializer.re

13
ext/standard/tests/serialize/oss_fuzz_433303828.phpt

@ -0,0 +1,13 @@
--TEST--
OSS-Fuzz #433303828
--FILE--
<?php
unserialize('O:2:"yy": ');
unserialize('O:2:"yy":: ');
?>
--EXPECTF--
Warning: unserialize(): Error at offset 9 of 10 bytes in %s on line %d
Warning: unserialize(): Error at offset 10 of 11 bytes in %s on line %d

2
ext/standard/var_unserializer.re

@ -1312,10 +1312,12 @@ object ":" uiv ":" ["] {
YYCURSOR = *p;
if (*(YYCURSOR) != ':') {
zend_string_release_ex(class_name, 0);
return 0;
}
if (*(YYCURSOR+1) != '{') {
*p = YYCURSOR+1;
zend_string_release_ex(class_name, 0);
return 0;
}

Loading…
Cancel
Save