diff options
author | Lonny Kapelushnik <lonnyk@gmail.com> | 2012-08-05 15:36:36 +0000 |
---|---|---|
committer | Stanislav Malyshev <stas@php.net> | 2012-08-05 20:56:06 -0700 |
commit | 45f3322905dfa5ae60f7b5a55b8cb29d0ac63e5d (patch) | |
tree | e0320ef4e7dd50e889c296ccacf58b9134e32993 /ext/standard/var.c | |
parent | 81c6a060a271c29123c342a282d2c48fda45be03 (diff) | |
download | php-git-45f3322905dfa5ae60f7b5a55b8cb29d0ac63e5d.tar.gz |
var_export outputs an E_WARNING when recursion is detected
Diffstat (limited to 'ext/standard/var.c')
-rw-r--r-- | ext/standard/var.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/ext/standard/var.c b/ext/standard/var.c index 735d0a7cbb..494fb583c7 100644 --- a/ext/standard/var.c +++ b/ext/standard/var.c @@ -453,6 +453,11 @@ PHPAPI void php_var_export_ex(zval **struc, int level, smart_str *buf TSRMLS_DC) break; case IS_ARRAY: myht = Z_ARRVAL_PP(struc); + if(myht && myht->nApplyCount > 0){ + smart_str_appendl(buf, "NULL", 4); + zend_error(E_WARNING, "var_export does not handle circular references"); + return; + } if (level > 1) { smart_str_appendc(buf, '\n'); buffer_append_spaces(buf, level - 1); @@ -469,6 +474,11 @@ PHPAPI void php_var_export_ex(zval **struc, int level, smart_str *buf TSRMLS_DC) case IS_OBJECT: myht = Z_OBJPROP_PP(struc); + if(myht && myht->nApplyCount > 0){ + smart_str_appendl(buf, "NULL", 4); + zend_error(E_WARNING, "var_export does not handle circular references"); + return; + } if (level > 1) { smart_str_appendc(buf, '\n'); buffer_append_spaces(buf, level - 1); |