From: Scott MacVicar Date: Tue, 15 Apr 2008 00:59:04 +0000 (+0000) Subject: Fixed bug #44720 (Prevent infinite recursion within session_register) X-Git-Tag: BEFORE_NEW_PARAMETER_PARSE~373 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=944061ba37ee68e093eadd5538e3854c08f71461;p=php Fixed bug #44720 (Prevent infinite recursion within session_register) --- diff --git a/ext/session/session.c b/ext/session/session.c index 65ac1c29b8..f241237895 100644 --- a/ext/session/session.c +++ b/ext/session/session.c @@ -1655,12 +1655,19 @@ static void php_register_var(zval** entry TSRMLS_DC) 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);