--- /dev/null
+--TEST--
+Unserializing an abstract class should fail
+--FILE--
+<?php
+
+$payload = 'O:23:"RecursiveFilterIterator":0:{}';
+try {
+ var_dump(unserialize($payload));
+} catch (Error $e) {
+ echo $e->getMessage(), "\n";
+}
+
+?>
+--EXPECT--
+Cannot instantiate abstract class RecursiveFilterIterator
return 0;
}
- object_init_ex(rval, ce);
+ if (object_init_ex(rval, ce) == FAILURE) {
+ zend_string_release_ex(class_name, 0);
+ return 0;
+ }
+
if (incomplete_class) {
php_store_class_name(rval, ZSTR_VAL(class_name), len2);
}