From 0a09f95dd7cd98989179a6f477f6e50e33a310a3 Mon Sep 17 00:00:00 2001 From: Andrei Zmievski Date: Thu, 4 May 2000 20:28:21 +0000 Subject: [PATCH] Got rid of infinite recursion when serializing $GLOBALS[]. @- Fixed infinite recursion when serializing $GLOBALS[] in WDDX. (Andrei) --- ext/wddx/wddx.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ext/wddx/wddx.c b/ext/wddx/wddx.c index d7f9eeaa322..2ac3272709d 100644 --- a/ext/wddx/wddx.c +++ b/ext/wddx/wddx.c @@ -415,7 +415,11 @@ static void php_wddx_serialize_hash(wddx_packet *packet, zval *var) } } - while(zend_hash_get_current_data(target_hash, (void**)&ent) == SUCCESS) { + for (;zend_hash_get_current_data(target_hash, (void**)&ent) == SUCCESS; + zend_hash_move_forward(target_hash)) { + if (*ent == var) + continue; + if (var->type == IS_OBJECT || hash_type == HASH_KEY_IS_STRING) { ent_type = zend_hash_get_current_key(target_hash, &key, &idx); @@ -428,8 +432,6 @@ static void php_wddx_serialize_hash(wddx_packet *packet, zval *var) } } else php_wddx_serialize_var(packet, *ent, NULL); - - zend_hash_move_forward(target_hash); } if (var->type == IS_OBJECT || hash_type == HASH_KEY_IS_STRING) {