123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- --TEST--
- Errors from __unserialize() with invalid data
- --FILE--
- <?php
- echo "ArrayObject:\n";
- try {
- // empty array
- unserialize('O:11:"ArrayObject":0:{}');
- } catch (Exception $e) {
- echo $e->getMessage(), "\n";
- }
- try {
- unserialize('O:11:"ArrayObject":3:{i:0;b:1;i:1;a:0:{}i:2;a:0:{}}');
- } catch (Exception $e) {
- echo $e->getMessage(), "\n";
- }
- try {
- unserialize('O:11:"ArrayObject":3:{i:0;i:0;i:1;a:0:{}i:2;i:0;}');
- } catch (Exception $e) {
- echo $e->getMessage(), "\n";
- }
- try {
- unserialize('O:11:"ArrayObject":3:{i:0;i:0;i:1;i:0;i:2;a:0:{}}');
- } catch (Exception $e) {
- echo $e->getMessage(), "\n";
- }
- try {
- // iterator class name is not a string
- unserialize('O:11:"ArrayObject":4:{i:0;i:0;i:1;i:0;i:2;a:0:{}i:3;i:0;}');
- } catch (Exception $e) {
- echo $e->getMessage(), "\n";
- }
- try {
- unserialize('O:11:"ArrayObject":4:{i:0;i:0;i:1;a:2:{i:0;i:1;i:1;i:2;}i:2;a:0:{}i:3;s:11:"NonExistent";}');
- } catch (Exception $e) {
- echo $e->getMessage(), "\n";
- }
- class Existent {}
- try {
- unserialize('O:11:"ArrayObject":4:{i:0;i:0;i:1;a:2:{i:0;i:1;i:1;i:2;}i:2;a:0:{}i:3;s:8:"Existent";}');
- } catch (Exception $e) {
- echo $e->getMessage(), "\n";
- }
- echo "ArrayIterator:\n";
- try {
- unserialize('O:13:"ArrayIterator":0:{}');
- } catch (Exception $e) {
- echo $e->getMessage(), "\n";
- }
- try {
- unserialize('O:13:"ArrayIterator":3:{i:0;b:1;i:1;a:0:{}i:2;a:0:{}}');
- } catch (Exception $e) {
- echo $e->getMessage(), "\n";
- }
- try {
- unserialize('O:13:"ArrayIterator":3:{i:0;i:0;i:1;a:0:{}i:2;i:0;}');
- } catch (Exception $e) {
- echo $e->getMessage(), "\n";
- }
- try {
- unserialize('O:13:"ArrayIterator":3:{i:0;i:0;i:1;i:0;i:2;a:0:{}}');
- } catch (Exception $e) {
- echo $e->getMessage(), "\n";
- }
- echo "SplDoublyLinkedList:\n";
- try {
- unserialize('O:19:"SplDoublyLinkedList":0:{}');
- } catch (Exception $e) {
- echo $e->getMessage(), "\n";
- }
- try {
- unserialize('O:19:"SplDoublyLinkedList":3:{i:0;b:1;i:1;a:0:{}i:2;a:0:{}}');
- } catch (Exception $e) {
- echo $e->getMessage(), "\n";
- }
- try {
- unserialize('O:19:"SplDoublyLinkedList":3:{i:0;i:0;i:1;a:0:{}i:2;i:0;}');
- } catch (Exception $e) {
- echo $e->getMessage(), "\n";
- }
- try {
- unserialize('O:19:"SplDoublyLinkedList":3:{i:0;i:0;i:1;i:0;i:2;a:0:{}}');
- } catch (Exception $e) {
- echo $e->getMessage(), "\n";
- }
- echo "SplObjectStorage:\n";
- try {
- unserialize('O:16:"SplObjectStorage":0:{}');
- } catch (Exception $e) {
- echo $e->getMessage(), "\n";
- }
- try {
- unserialize('O:16:"SplObjectStorage":2:{i:0;i:0;i:1;a:0:{}}');
- } catch (Exception $e) {
- echo $e->getMessage(), "\n";
- }
- try {
- unserialize('O:16:"SplObjectStorage":2:{i:0;a:0:{}i:1;i:1;}');
- } catch (Exception $e) {
- echo $e->getMessage(), "\n";
- }
- try {
- unserialize('O:16:"SplObjectStorage":2:{i:0;a:1:{i:0;i:0;}i:1;a:0:{}}');
- } catch (Exception $e) {
- echo $e->getMessage(), "\n";
- }
- try {
- unserialize('O:16:"SplObjectStorage":2:{i:0;a:2:{i:0;i:0;i:1;i:0;}i:1;a:0:{}}');
- } catch (Exception $e) {
- echo $e->getMessage(), "\n";
- }
- ?>
- --EXPECT--
- ArrayObject:
- Incomplete or ill-typed serialization data
- Incomplete or ill-typed serialization data
- Incomplete or ill-typed serialization data
- Passed variable is not an array or object
- Incomplete or ill-typed serialization data
- Cannot deserialize ArrayObject with iterator class 'NonExistent'; no such class exists
- Cannot deserialize ArrayObject with iterator class 'Existent'; this class does not implement the Iterator interface
- ArrayIterator:
- Incomplete or ill-typed serialization data
- Incomplete or ill-typed serialization data
- Incomplete or ill-typed serialization data
- Passed variable is not an array or object
- SplDoublyLinkedList:
- Incomplete or ill-typed serialization data
- Incomplete or ill-typed serialization data
- Incomplete or ill-typed serialization data
- Incomplete or ill-typed serialization data
- SplObjectStorage:
- Incomplete or ill-typed serialization data
- Incomplete or ill-typed serialization data
- Incomplete or ill-typed serialization data
- Odd number of elements
- Non-object key
|