cvs: php-src(PHP_5_3) /ext/session session.c
| From: | Scott MacVicar | Date: | Tue, 15 Apr 2008 00:59:04 +0000 |
| Subject: | cvs: php-src(PHP_5_3) /ext/session session.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-49632@lists.php.net to get a copy of this message | ||
scottmac Tue Apr 15 00:59:04 2008 UTC
Modified files: (Branch: PHP_5_3)
/php-src/ext/session session.c
Log:
Fixed bug #44720 (Prevent infinite recursion within session_register)
http://cvs.php.net/viewvc.cgi/php-src/ext/session/session.c?r1=1.417.2.8.2.40.2.6&r2=1.417.2.8.2.40.2.7&diff_format=u
Index: php-src/ext/session/session.c
diff -u php-src/ext/session/session.c:1.417.2.8.2.40.2.6
php-src/ext/session/session.c:1.417.2.8.2.40.2.7
--- php-src/ext/session/session.c:1.417.2.8.2.40.2.6 Tue Mar 11 09:36:41 2008
+++ php-src/ext/session/session.c Tue Apr 15 00:59:04 2008
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: session.c,v 1.417.2.8.2.40.2.6 2008/03/11 09:36:41 dmitry Exp $ */
+/* $Id: session.c,v 1.417.2.8.2.40.2.7 2008/04/15 00:59:04 scottmac Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -1655,12 +1655,19 @@
zval **value;
if (Z_TYPE_PP(entry) == IS_ARRAY) {
+ if (Z_ARRVAL_PP(entry)->nApplyCount > 1) {
+ return;
+ }
+
zend_hash_internal_pointer_reset(Z_ARRVAL_PP(entry));
+ Z_ARRVAL_PP(entry)->nApplyCount++;
while (zend_hash_get_current_data(Z_ARRVAL_PP(entry), (void**)&value) == SUCCESS) {
php_register_var(value TSRMLS_CC);
zend_hash_move_forward(Z_ARRVAL_PP(entry));
}
+
+ Z_ARRVAL_PP(entry)->nApplyCount--;
} else {
convert_to_string_ex(entry);