@@ -3544,7 +3544,7 @@ PHP_FUNCTION(imap_mail_compose)
3544
3544
int toppart = 0 ;
3545
3545
int first ;
3546
3546
3547
- if (zend_parse_parameters (ZEND_NUM_ARGS (), "aa " , & envelope , & body ) == FAILURE ) {
3547
+ if (zend_parse_parameters (ZEND_NUM_ARGS (), "a/a/ " , & envelope , & body ) == FAILURE ) {
3548
3548
return ;
3549
3549
}
3550
3550
@@ -3602,6 +3602,7 @@ PHP_FUNCTION(imap_mail_compose)
3602
3602
if ((pvalue = zend_hash_str_find (Z_ARRVAL_P (envelope ), "custom_headers" , sizeof ("custom_headers" ) - 1 )) != NULL ) {
3603
3603
if (Z_TYPE_P (pvalue ) == IS_ARRAY ) {
3604
3604
custom_headers_param = tmp_param = NULL ;
3605
+ SEPARATE_ARRAY (pvalue );
3605
3606
ZEND_HASH_FOREACH_VAL (Z_ARRVAL_P (pvalue ), env_data ) {
3606
3607
custom_headers_param = mail_newbody_parameter ();
3607
3608
convert_to_string_ex (env_data );
@@ -3623,6 +3624,7 @@ PHP_FUNCTION(imap_mail_compose)
3623
3624
php_error_docref (NULL , E_WARNING , "body parameter must be a non-empty array" );
3624
3625
RETURN_FALSE ;
3625
3626
}
3627
+ SEPARATE_ARRAY (data );
3626
3628
3627
3629
bod = mail_newbody ();
3628
3630
topbod = bod ;
@@ -3644,6 +3646,7 @@ PHP_FUNCTION(imap_mail_compose)
3644
3646
if ((pvalue = zend_hash_str_find (Z_ARRVAL_P (data ), "type.parameters" , sizeof ("type.parameters" ) - 1 )) != NULL ) {
3645
3647
if (Z_TYPE_P (pvalue ) == IS_ARRAY ) {
3646
3648
disp_param = tmp_param = NULL ;
3649
+ SEPARATE_ARRAY (pvalue );
3647
3650
ZEND_HASH_FOREACH_STR_KEY_VAL (Z_ARRVAL_P (pvalue ), key , disp_data ) {
3648
3651
if (key == NULL ) continue ;
3649
3652
disp_param = mail_newbody_parameter ();
@@ -3677,6 +3680,7 @@ PHP_FUNCTION(imap_mail_compose)
3677
3680
if ((pvalue = zend_hash_str_find (Z_ARRVAL_P (data ), "disposition" , sizeof ("disposition" ) - 1 )) != NULL ) {
3678
3681
if (Z_TYPE_P (pvalue ) == IS_ARRAY ) {
3679
3682
disp_param = tmp_param = NULL ;
3683
+ SEPARATE_ARRAY (pvalue );
3680
3684
ZEND_HASH_FOREACH_STR_KEY_VAL (Z_ARRVAL_P (pvalue ), key , disp_data ) {
3681
3685
if (key == NULL ) continue ;
3682
3686
disp_param = mail_newbody_parameter ();
@@ -3712,6 +3716,7 @@ PHP_FUNCTION(imap_mail_compose)
3712
3716
}
3713
3717
} else if (Z_TYPE_P (data ) == IS_ARRAY ) {
3714
3718
short type = -1 ;
3719
+ SEPARATE_ARRAY (data );
3715
3720
if ((pvalue = zend_hash_str_find (Z_ARRVAL_P (data ), "type" , sizeof ("type" ) - 1 )) != NULL ) {
3716
3721
type = (short ) zval_get_long (pvalue );
3717
3722
}
@@ -3746,6 +3751,7 @@ PHP_FUNCTION(imap_mail_compose)
3746
3751
if ((pvalue = zend_hash_str_find (Z_ARRVAL_P (data ), "type.parameters" , sizeof ("type.parameters" ) - 1 )) != NULL ) {
3747
3752
if (Z_TYPE_P (pvalue ) == IS_ARRAY ) {
3748
3753
disp_param = tmp_param = NULL ;
3754
+ SEPARATE_ARRAY (pvalue );
3749
3755
ZEND_HASH_FOREACH_STR_KEY_VAL (Z_ARRVAL_P (pvalue ), key , disp_data ) {
3750
3756
if (key == NULL ) continue ;
3751
3757
disp_param = mail_newbody_parameter ();
@@ -3779,6 +3785,7 @@ PHP_FUNCTION(imap_mail_compose)
3779
3785
if ((pvalue = zend_hash_str_find (Z_ARRVAL_P (data ), "disposition" , sizeof ("disposition" ) - 1 )) != NULL ) {
3780
3786
if (Z_TYPE_P (pvalue ) == IS_ARRAY ) {
3781
3787
disp_param = tmp_param = NULL ;
3788
+ SEPARATE_ARRAY (pvalue );
3782
3789
ZEND_HASH_FOREACH_STR_KEY_VAL (Z_ARRVAL_P (pvalue ), key , disp_data ) {
3783
3790
if (key == NULL ) continue ;
3784
3791
disp_param = mail_newbody_parameter ();
0 commit comments