Hi
After looking at the source for possible fix for the var_dump()'s crash (fixed few 
minutes by Yasuo) I realized that it may be
possible to change HASH_PROTECT_RECURSION macro and instead of
  if ((ht)->nApplyCount++ >= 3)

to change to
  if ((ht)->nApplyCount++ >= 1)


Ok. The var_dump() is fixed but I think that there are maybe other places where this 
problem can take place. ...and I've just tried
that :
<?php
$other = &$GLOBALS;
if ($other ==$GLOBALS) echo "Success";
?>
and I php crashed with :

Fatal error: Nesting level too deep - recursive dependency? in c:\apache\htdocs\ad.php 
on line 3

So, the problem can occur in :
1)zend_hash_apply()
2)zend_hash_apply_with_argument()
3)zend_hash_apply_with_arguments()
4)zend_hash_reverse_apply()
5)zend_hash_compare()  - my example uses this

The easy fix is to change from E_ERROR to E_WARNING and to lower 3 to 1. I'm not sure 
what will be the BC impact of these changes.
May be the problem is deeper and has to be investigated.

Best regards,
Andrey Hristov




-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to