@@ -39,6 +39,12 @@ struct php_serialize_data {
3939
4040static void php_array_element_dump (zval * zv , zend_ulong index , zend_string * key , int level ) /* {{{ */
4141{
42+ #ifdef ZEND_CHECK_STACK_LIMIT
43+ if (UNEXPECTED (zend_call_stack_overflowed (EG (stack_limit )))) {
44+ php_printf ("%*cnesting level too deep" , level + 1 , ' ' );
45+ return ;
46+ }
47+ #endif
4248 if (key == NULL ) { /* numeric key */
4349 php_printf ("%*c[" ZEND_LONG_FMT "]=>\n" , level + 1 , ' ' , index );
4450 } else { /* string key */
@@ -257,6 +263,12 @@ PHP_FUNCTION(var_dump)
257263
258264static void zval_array_element_dump (zval * zv , zend_ulong index , zend_string * key , int level ) /* {{{ */
259265{
266+ #ifdef ZEND_CHECK_STACK_LIMIT
267+ if (UNEXPECTED (zend_call_stack_overflowed (EG (stack_limit )))) {
268+ php_printf ("%*cnesting level too deep" , level + 1 , ' ' );
269+ return ;
270+ }
271+ #endif
260272 if (key == NULL ) { /* numeric key */
261273 php_printf ("%*c[" ZEND_LONG_FMT "]=>\n" , level + 1 , ' ' , index );
262274 } else { /* string key */
@@ -272,6 +284,12 @@ static void zval_object_property_dump(zend_property_info *prop_info, zval *zv, z
272284{
273285 const char * prop_name , * class_name ;
274286
287+ #ifdef ZEND_CHECK_STACK_LIMIT
288+ if (UNEXPECTED (zend_call_stack_overflowed (EG (stack_limit )))) {
289+ php_printf ("%*cnesting level too deep" , level + 1 , ' ' );
290+ return ;
291+ }
292+ #endif
275293 if (key == NULL ) { /* numeric key */
276294 php_printf ("%*c[" ZEND_LONG_FMT "]=>\n" , level + 1 , ' ' , index );
277295 } else { /* string key */
0 commit comments