@@ -1559,7 +1559,8 @@ static void debug_backtrace_get_args(zend_execute_data *call, zval *arg_array) /
15591559 */
15601560 while (i < first_extra_arg ) {
15611561 zend_string * arg_name = call -> func -> op_array .vars [i ];
1562- zval * arg = zend_hash_find_ex_ind (call -> symbol_table , arg_name , 1 );
1562+ zval arg ;
1563+ zval * old_arg = zend_hash_find_ex_ind (call -> symbol_table , arg_name , 1 );
15631564 zend_attribute * attribute = zend_get_parameter_attribute_str (
15641565 call -> func -> op_array .attributes ,
15651566 "sensitiveparameter" ,
@@ -1574,28 +1575,29 @@ static void debug_backtrace_get_args(zend_execute_data *call, zval *arg_array) /
15741575
15751576 }
15761577
1577- if (arg ) {
1578- ZVAL_DEREF (arg );
1579- Z_TRY_ADDREF_P (arg );
1578+ if (old_arg ) {
1579+ ZVAL_DEREF (old_arg );
1580+ Z_TRY_ADDREF_P (old_arg );
1581+ arg = * old_arg ;
15801582 } else {
1581- ZVAL_NULL (arg );
1583+ ZVAL_NULL (& arg );
15821584 }
15831585
15841586 if (last_was_sensitive ) {
15851587 zval new_arg ;
15861588 object_init_ex (& new_arg , zend_ce_sensitive_parameter_value );
1587- zend_call_method_with_1_params (Z_OBJ_P (& new_arg ), zend_ce_sensitive_parameter_value , & zend_ce_sensitive_parameter_value -> constructor , "__construct" , NULL , arg );
1589+ zend_call_method_with_1_params (Z_OBJ_P (& new_arg ), zend_ce_sensitive_parameter_value , & zend_ce_sensitive_parameter_value -> constructor , "__construct" , NULL , & arg );
15881590 ZEND_HASH_FILL_SET (& new_arg );
15891591 } else {
1590- ZEND_HASH_FILL_SET (arg );
1592+ ZEND_HASH_FILL_SET (& arg );
15911593 }
15921594
15931595 ZEND_HASH_FILL_NEXT ();
15941596 i ++ ;
15951597 }
15961598 } else {
15971599 while (i < first_extra_arg ) {
1598- zval * arg ;
1600+ zval arg ;
15991601
16001602 zend_attribute * attribute = zend_get_parameter_attribute_str (
16011603 call -> func -> op_array .attributes ,
@@ -1611,20 +1613,20 @@ static void debug_backtrace_get_args(zend_execute_data *call, zval *arg_array) /
16111613 }
16121614
16131615 if (EXPECTED (Z_TYPE_INFO_P (p ) != IS_UNDEF )) {
1614- arg = p ;
1615- ZVAL_DEREF ( arg );
1616- Z_TRY_ADDREF_P ( arg ) ;
1616+ ZVAL_DEREF ( p ) ;
1617+ Z_TRY_ADDREF_P ( p );
1618+ arg = * p ;
16171619 } else {
1618- ZVAL_NULL (arg );
1620+ ZVAL_NULL (& arg );
16191621 }
16201622
16211623 if (last_was_sensitive ) {
16221624 zval new_arg ;
16231625 object_init_ex (& new_arg , zend_ce_sensitive_parameter_value );
1624- zend_call_method_with_1_params (Z_OBJ_P (& new_arg ), zend_ce_sensitive_parameter_value , & zend_ce_sensitive_parameter_value -> constructor , "__construct" , NULL , arg );
1626+ zend_call_method_with_1_params (Z_OBJ_P (& new_arg ), zend_ce_sensitive_parameter_value , & zend_ce_sensitive_parameter_value -> constructor , "__construct" , NULL , & arg );
16251627 ZEND_HASH_FILL_SET (& new_arg );
16261628 } else {
1627- ZEND_HASH_FILL_SET (arg );
1629+ ZEND_HASH_FILL_SET (& arg );
16281630 }
16291631
16301632 ZEND_HASH_FILL_NEXT ();
@@ -1636,7 +1638,7 @@ static void debug_backtrace_get_args(zend_execute_data *call, zval *arg_array) /
16361638 }
16371639
16381640 while (i < num_args ) {
1639- zval * arg ;
1641+ zval arg ;
16401642
16411643 zend_attribute * attribute = zend_get_parameter_attribute_str (
16421644 call -> func -> op_array .attributes ,
@@ -1657,20 +1659,20 @@ static void debug_backtrace_get_args(zend_execute_data *call, zval *arg_array) /
16571659
16581660
16591661 if (EXPECTED (Z_TYPE_INFO_P (p ) != IS_UNDEF )) {
1660- arg = p ;
1661- ZVAL_DEREF ( arg );
1662- Z_TRY_ADDREF_P ( arg ) ;
1662+ ZVAL_DEREF ( p ) ;
1663+ Z_TRY_ADDREF_P ( p );
1664+ arg = * p ;
16631665 } else {
1664- ZVAL_NULL (arg );
1666+ ZVAL_NULL (& arg );
16651667 }
16661668
16671669 if (last_was_sensitive ) {
16681670 zval new_arg ;
16691671 object_init_ex (& new_arg , zend_ce_sensitive_parameter_value );
1670- zend_call_method_with_1_params (Z_OBJ_P (& new_arg ), zend_ce_sensitive_parameter_value , & zend_ce_sensitive_parameter_value -> constructor , "__construct" , NULL , arg );
1672+ zend_call_method_with_1_params (Z_OBJ_P (& new_arg ), zend_ce_sensitive_parameter_value , & zend_ce_sensitive_parameter_value -> constructor , "__construct" , NULL , & arg );
16711673 ZEND_HASH_FILL_SET (& new_arg );
16721674 } else {
1673- ZEND_HASH_FILL_SET (arg );
1675+ ZEND_HASH_FILL_SET (& arg );
16741676 }
16751677
16761678 ZEND_HASH_FILL_NEXT ();
0 commit comments