summaryrefslogtreecommitdiffstats
path: root/php-serialize.patch
diff options
context:
space:
mode:
Diffstat (limited to 'php-serialize.patch')
-rw-r--r--php-serialize.patch121
1 files changed, 121 insertions, 0 deletions
diff --git a/php-serialize.patch b/php-serialize.patch
new file mode 100644
index 0000000..4de9a30
--- /dev/null
+++ b/php-serialize.patch
@@ -0,0 +1,121 @@
+diff -up ./ext/spl/spl_array.c.serialize ./ext/spl/spl_array.c
+--- ./ext/spl/spl_array.c.serialize 2014-06-04 03:22:06.000000000 +0200
++++ ./ext/spl/spl_array.c 2014-06-16 09:06:10.821885032 +0200
+@@ -1749,7 +1749,6 @@ SPL_METHOD(Array, unserialize)
+ }
+
+ if (buf_len == 0) {
+- zend_throw_exception_ex(spl_ce_UnexpectedValueException, 0 TSRMLS_CC, "Empty serialized string cannot be empty");
+ return;
+ }
+
+diff -up ./ext/spl/spl_dllist.c.serialize ./ext/spl/spl_dllist.c
+--- ./ext/spl/spl_dllist.c.serialize 2014-06-16 09:06:10.822885036 +0200
++++ ./ext/spl/spl_dllist.c 2014-06-16 09:07:01.601098042 +0200
+@@ -1192,7 +1192,6 @@ SPL_METHOD(SplDoublyLinkedList, unserial
+ }
+
+ if (buf_len == 0) {
+- zend_throw_exception_ex(spl_ce_UnexpectedValueException, 0 TSRMLS_CC, "Serialized string cannot be empty");
+ return;
+ }
+
+diff -up ./ext/spl/spl_observer.c.serialize ./ext/spl/spl_observer.c
+--- ./ext/spl/spl_observer.c.serialize 2014-06-04 03:22:06.000000000 +0200
++++ ./ext/spl/spl_observer.c 2014-06-16 09:06:10.823885040 +0200
+@@ -831,7 +831,6 @@ SPL_METHOD(SplObjectStorage, unserialize
+ }
+
+ if (buf_len == 0) {
+- zend_throw_exception_ex(spl_ce_UnexpectedValueException, 0 TSRMLS_CC, "Empty serialized string cannot be empty");
+ return;
+ }
+
+diff -up ./ext/spl/tests/ArrayObject_unserialize_empty_string.phpt.serialize ./ext/spl/tests/ArrayObject_unserialize_empty_string.phpt
+--- ./ext/spl/tests/ArrayObject_unserialize_empty_string.phpt.serialize 2014-06-04 03:22:06.000000000 +0200
++++ ./ext/spl/tests/ArrayObject_unserialize_empty_string.phpt 2014-06-16 09:06:10.824885044 +0200
+@@ -1,5 +1,5 @@
+ --TEST--
+-ArrayObject: test that you cannot unserialize a empty string
++ArrayObject: test that you can unserialize a empty string
+ --CREDITS--
+ Havard Eide <nucleuz@gmail.com>
+ #PHPTestFest2009 Norway 2009-06-09 \o/
+@@ -8,9 +8,6 @@ Havard Eide <nucleuz@gmail.com>
+ $a = new ArrayObject(array());
+ $a->unserialize("");
+ ?>
++Done
+ --EXPECTF--
+-Fatal error: Uncaught exception 'UnexpectedValueException' with message 'Empty serialized string cannot be empty' in %s.php:%d
+-Stack trace:
+-#0 %s(%d): ArrayObject->unserialize('')
+-#1 {main}
+- thrown in %s.php on line %d
++Done
+diff -up ./ext/spl/tests/SplObjectStorage_unserialize_invalid_parameter3.phpt.serialize ./ext/spl/tests/SplObjectStorage_unserialize_invalid_parameter3.phpt
+--- ./ext/spl/tests/SplObjectStorage_unserialize_invalid_parameter3.phpt.serialize 2014-06-04 03:22:06.000000000 +0200
++++ ./ext/spl/tests/SplObjectStorage_unserialize_invalid_parameter3.phpt 2014-06-16 09:06:10.824885044 +0200
+@@ -1,5 +1,5 @@
+ --TEST--
+-Check that SplObjectStorage::unserialize throws exception when NULL passed
++Check that SplObjectStorage::unserialize doesn't throws exception when NULL passed
+ --CREDITS--
+ PHPNW Testfest 2009 - Simon Westcott (swestcott@gmail.com)
+ --FILE--
+@@ -14,6 +14,6 @@ try {
+ }
+
+ ?>
++Done
+ --EXPECTF--
+-Empty serialized string cannot be empty
+-
++Done
+diff -up ./ext/spl/tests/unserialize.phpt.serialize ./ext/spl/tests/unserialize.phpt
+--- ./ext/spl/tests/unserialize.phpt.serialize 2014-06-16 09:06:10.824885044 +0200
++++ ./ext/spl/tests/unserialize.phpt 2014-06-16 09:06:10.824885044 +0200
+@@ -0,0 +1,43 @@
++--TEST--
++SPL: unserialize with no data (for PHPUnit)
++--FILE--
++<?php
++
++$types = array('SplDoublyLinkedList', 'SplObjectStorage', 'ArrayObject');
++
++foreach ($types as $type) {
++ // serialize an empty new object
++ $exp = serialize(new $type());
++ // hack to instanciate an object without constructor
++ $str = sprintf('C:%d:"%s":0:{}', strlen($type), $type);
++ $obj = unserialize($str);
++ var_dump($obj);
++ // serialize result
++ $out = serialize($obj);
++ // both should match
++ var_dump($exp === $out);
++}
++?>
++===DONE===
++--EXPECTF--
++object(SplDoublyLinkedList)#%d (2) {
++ ["flags":"SplDoublyLinkedList":private]=>
++ int(0)
++ ["dllist":"SplDoublyLinkedList":private]=>
++ array(0) {
++ }
++}
++bool(true)
++object(SplObjectStorage)#%d (1) {
++ ["storage":"SplObjectStorage":private]=>
++ array(0) {
++ }
++}
++bool(true)
++object(ArrayObject)#%d (1) {
++ ["storage":"ArrayObject":private]=>
++ array(0) {
++ }
++}
++bool(true)
++===DONE===