@@ -41,6 +41,12 @@ struct php_serialize_data {
4141
4242static void php_array_element_dump (zval * zv , zend_ulong index , zend_string * key , int level ) /* {{{ */
4343{
44+ #ifdef ZEND_CHECK_STACK_LIMIT
45+ if (UNEXPECTED (zend_call_stack_overflowed (EG (stack_limit )))) {
46+ php_printf ("%*cnesting level too deep" , level + 1 , ' ' );
47+ return ;
48+ }
49+ #endif
4450 if (key == NULL ) { /* numeric key */
4551 php_printf ("%*c[" ZEND_LONG_FMT "]=>\n" , level + 1 , ' ' , index );
4652 } else { /* string key */
@@ -255,6 +261,12 @@ PHP_FUNCTION(var_dump)
255261
256262static void zval_array_element_dump (zval * zv , zend_ulong index , zend_string * key , int level ) /* {{{ */
257263{
264+ #ifdef ZEND_CHECK_STACK_LIMIT
265+ if (UNEXPECTED (zend_call_stack_overflowed (EG (stack_limit )))) {
266+ php_printf ("%*cnesting level too deep" , level + 1 , ' ' );
267+ return ;
268+ }
269+ #endif
258270 if (key == NULL ) { /* numeric key */
259271 php_printf ("%*c[" ZEND_LONG_FMT "]=>\n" , level + 1 , ' ' , index );
260272 } else { /* string key */
@@ -270,6 +282,12 @@ static void zval_object_property_dump(zend_property_info *prop_info, zval *zv, z
270282{
271283 const char * prop_name , * class_name ;
272284
285+ #ifdef ZEND_CHECK_STACK_LIMIT
286+ if (UNEXPECTED (zend_call_stack_overflowed (EG (stack_limit )))) {
287+ php_printf ("%*cnesting level too deep" , level + 1 , ' ' );
288+ return ;
289+ }
290+ #endif
273291 if (key == NULL ) { /* numeric key */
274292 php_printf ("%*c[" ZEND_LONG_FMT "]=>\n" , level + 1 , ' ' , index );
275293 } else { /* string key */
0 commit comments