iliaa           Wed Apr  5 02:28:06 2006 UTC

  Modified files:              (Branch: PHP_5_1)
    /php-src/ext/standard       var.c 
    /php-src    NEWS 
  Log:
  Fixed bug #36957 (serialize() does not handle recursion).
  
  
http://cvs.php.net/viewcvs.cgi/php-src/ext/standard/var.c?r1=1.203.2.6&r2=1.203.2.7&diff_format=u
Index: php-src/ext/standard/var.c
diff -u php-src/ext/standard/var.c:1.203.2.6 
php-src/ext/standard/var.c:1.203.2.7
--- php-src/ext/standard/var.c:1.203.2.6        Fri Mar 10 08:42:56 2006
+++ php-src/ext/standard/var.c  Wed Apr  5 02:28:06 2006
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: var.c,v 1.203.2.6 2006/03/10 08:42:56 dmitry Exp $ */
+/* $Id: var.c,v 1.203.2.7 2006/04/05 02:28:06 iliaa Exp $ */
 
 
 
@@ -815,10 +815,18 @@
                                        if (zend_hash_get_current_data_ex(myht, 
                                                (void **) &data, &pos) != 
SUCCESS 
                                                || !data 
-                                               || data == struc) {
+                                               || data == struc
+                                               || (Z_TYPE_PP(data) == IS_ARRAY 
&& Z_ARRVAL_PP(data)->nApplyCount > 1)
+                                       ) {
                                                smart_str_appendl(buf, "N;", 2);
                                        } else {
+                                               if (Z_TYPE_PP(data) == 
IS_ARRAY) {
+                                                       
Z_ARRVAL_PP(data)->nApplyCount++;
+                                               }
                                                php_var_serialize_intern(buf, 
data, var_hash TSRMLS_CC);
+                                               if (Z_TYPE_PP(data) == 
IS_ARRAY) {
+                                                       
Z_ARRVAL_PP(data)->nApplyCount--;
+                                               }
                                        }
                                }
                        }
http://cvs.php.net/viewcvs.cgi/php-src/NEWS?r1=1.2027.2.491&r2=1.2027.2.492&diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.491 php-src/NEWS:1.2027.2.492
--- php-src/NEWS:1.2027.2.491   Tue Apr  4 19:53:21 2006
+++ php-src/NEWS        Wed Apr  5 02:28:06 2006
@@ -13,6 +13,7 @@
 - Removed the E_STRICT deprecation notice from "var". (Ilia)
 - Fixed debug_zval_dump() to support private and protected members. (Dmitry)
 - Fixed SoapFault::getMessage(). (Dmitry)
+- Fixed bug #36957 (serialize() does not handle recursion). (Ilia)
 - Fixed bug #36941 (ArrayIterator does not clone itself). (Marcus)
 - Fixed bug #36898 (__set() leaks in classes extending internal ones). 
   (Tony, Dmitry)

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to