File php7-fix-wrong-reference-serialize.patch of Package php7.8810
http://git.php.net/?p=php-src.git;a=commitdiff;h=7989db975f325d83b461a46c3dc75a81fcc27795
http://git.php.net/?p=php-src.git;a=commitdiff;h=2eb7e75c25e3b16c3265e6a53f57a29dbeec0d2f
Index: php-7.0.7/ext/standard/var.c
===================================================================
--- php-7.0.7.orig/ext/standard/var.c 2017-10-18 13:14:27.718662427 +0200
+++ php-7.0.7/ext/standard/var.c 2017-10-18 13:14:30.726714520 +0200
@@ -957,6 +957,10 @@ again:
php_var_serialize_string(buf, ZSTR_VAL(key), ZSTR_LEN(key));
}
+ if (Z_ISREF_P(data) && Z_REFCOUNT_P(data) == 1) {
+ data = Z_REFVAL_P(data);
+ }
+
/* we should still add element even if it's not OK,
* since we already wrote the length of the array before */
if ((Z_TYPE_P(data) == IS_ARRAY && Z_TYPE_P(struc) == IS_ARRAY && Z_ARR_P(data) == Z_ARR_P(struc))