@@ -3556,7 +3556,7 @@ PHP_FUNCTION(imap_mail_compose)
3556
3556
int toppart = 0 ;
3557
3557
int first ;
3558
3558
3559
- if (zend_parse_parameters (ZEND_NUM_ARGS (), "aa " , & envelope , & body ) == FAILURE ) {
3559
+ if (zend_parse_parameters (ZEND_NUM_ARGS (), "a/a/ " , & envelope , & body ) == FAILURE ) {
3560
3560
return ;
3561
3561
}
3562
3562
@@ -3614,6 +3614,7 @@ PHP_FUNCTION(imap_mail_compose)
3614
3614
if ((pvalue = zend_hash_str_find (Z_ARRVAL_P (envelope ), "custom_headers" , sizeof ("custom_headers" ) - 1 )) != NULL ) {
3615
3615
if (Z_TYPE_P (pvalue ) == IS_ARRAY ) {
3616
3616
custom_headers_param = tmp_param = NULL ;
3617
+ SEPARATE_ARRAY (pvalue );
3617
3618
ZEND_HASH_FOREACH_VAL (Z_ARRVAL_P (pvalue ), env_data ) {
3618
3619
custom_headers_param = mail_newbody_parameter ();
3619
3620
convert_to_string_ex (env_data );
@@ -3635,6 +3636,7 @@ PHP_FUNCTION(imap_mail_compose)
3635
3636
php_error_docref (NULL , E_WARNING , "body parameter must be a non-empty array" );
3636
3637
RETURN_FALSE ;
3637
3638
}
3639
+ SEPARATE_ARRAY (data );
3638
3640
3639
3641
bod = mail_newbody ();
3640
3642
topbod = bod ;
@@ -3656,6 +3658,7 @@ PHP_FUNCTION(imap_mail_compose)
3656
3658
if ((pvalue = zend_hash_str_find (Z_ARRVAL_P (data ), "type.parameters" , sizeof ("type.parameters" ) - 1 )) != NULL ) {
3657
3659
if (Z_TYPE_P (pvalue ) == IS_ARRAY ) {
3658
3660
disp_param = tmp_param = NULL ;
3661
+ SEPARATE_ARRAY (pvalue );
3659
3662
ZEND_HASH_FOREACH_STR_KEY_VAL (Z_ARRVAL_P (pvalue ), key , disp_data ) {
3660
3663
if (key == NULL ) continue ;
3661
3664
disp_param = mail_newbody_parameter ();
@@ -3689,6 +3692,7 @@ PHP_FUNCTION(imap_mail_compose)
3689
3692
if ((pvalue = zend_hash_str_find (Z_ARRVAL_P (data ), "disposition" , sizeof ("disposition" ) - 1 )) != NULL ) {
3690
3693
if (Z_TYPE_P (pvalue ) == IS_ARRAY ) {
3691
3694
disp_param = tmp_param = NULL ;
3695
+ SEPARATE_ARRAY (pvalue );
3692
3696
ZEND_HASH_FOREACH_STR_KEY_VAL (Z_ARRVAL_P (pvalue ), key , disp_data ) {
3693
3697
if (key == NULL ) continue ;
3694
3698
disp_param = mail_newbody_parameter ();
@@ -3724,6 +3728,7 @@ PHP_FUNCTION(imap_mail_compose)
3724
3728
}
3725
3729
} else if (Z_TYPE_P (data ) == IS_ARRAY ) {
3726
3730
short type = -1 ;
3731
+ SEPARATE_ARRAY (data );
3727
3732
if ((pvalue = zend_hash_str_find (Z_ARRVAL_P (data ), "type" , sizeof ("type" ) - 1 )) != NULL ) {
3728
3733
type = (short ) zval_get_long (pvalue );
3729
3734
}
@@ -3758,6 +3763,7 @@ PHP_FUNCTION(imap_mail_compose)
3758
3763
if ((pvalue = zend_hash_str_find (Z_ARRVAL_P (data ), "type.parameters" , sizeof ("type.parameters" ) - 1 )) != NULL ) {
3759
3764
if (Z_TYPE_P (pvalue ) == IS_ARRAY ) {
3760
3765
disp_param = tmp_param = NULL ;
3766
+ SEPARATE_ARRAY (pvalue );
3761
3767
ZEND_HASH_FOREACH_STR_KEY_VAL (Z_ARRVAL_P (pvalue ), key , disp_data ) {
3762
3768
if (key == NULL ) continue ;
3763
3769
disp_param = mail_newbody_parameter ();
@@ -3791,6 +3797,7 @@ PHP_FUNCTION(imap_mail_compose)
3791
3797
if ((pvalue = zend_hash_str_find (Z_ARRVAL_P (data ), "disposition" , sizeof ("disposition" ) - 1 )) != NULL ) {
3792
3798
if (Z_TYPE_P (pvalue ) == IS_ARRAY ) {
3793
3799
disp_param = tmp_param = NULL ;
3800
+ SEPARATE_ARRAY (pvalue );
3794
3801
ZEND_HASH_FOREACH_STR_KEY_VAL (Z_ARRVAL_P (pvalue ), key , disp_data ) {
3795
3802
if (key == NULL ) continue ;
3796
3803
disp_param = mail_newbody_parameter ();
0 commit comments