From 944061ba37ee68e093eadd5538e3854c08f71461 Mon Sep 17 00:00:00 2001 From: Scott MacVicar Date: Tue, 15 Apr 2008 00:59:04 +0000 Subject: [PATCH] Fixed bug #44720 (Prevent infinite recursion within session_register) --- ext/session/session.c | 7 +++++++ 1 file changed, 7 insertions(+) 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); -- 2.40.0