@@ -3093,7 +3093,7 @@ PHP_FUNCTION(imap_mail_compose)
3093
3093
int toppart = 0 ;
3094
3094
int first ;
3095
3095
3096
- if (zend_parse_parameters (ZEND_NUM_ARGS (), "aa " , & envelope , & body ) == FAILURE ) {
3096
+ if (zend_parse_parameters (ZEND_NUM_ARGS (), "a/a/ " , & envelope , & body ) == FAILURE ) {
3097
3097
RETURN_THROWS ();
3098
3098
}
3099
3099
@@ -3151,6 +3151,7 @@ PHP_FUNCTION(imap_mail_compose)
3151
3151
if ((pvalue = zend_hash_str_find (Z_ARRVAL_P (envelope ), "custom_headers" , sizeof ("custom_headers" ) - 1 )) != NULL ) {
3152
3152
if (Z_TYPE_P (pvalue ) == IS_ARRAY ) {
3153
3153
custom_headers_param = tmp_param = NULL ;
3154
+ SEPARATE_ARRAY (pvalue );
3154
3155
ZEND_HASH_FOREACH_VAL (Z_ARRVAL_P (pvalue ), env_data ) {
3155
3156
custom_headers_param = mail_newbody_parameter ();
3156
3157
convert_to_string_ex (env_data );
@@ -3173,6 +3174,7 @@ PHP_FUNCTION(imap_mail_compose)
3173
3174
php_error_docref (NULL , E_WARNING , "body parameter must be a non-empty array" );
3174
3175
RETURN_FALSE ;
3175
3176
}
3177
+ SEPARATE_ARRAY (data );
3176
3178
3177
3179
bod = mail_newbody ();
3178
3180
topbod = bod ;
@@ -3194,6 +3196,7 @@ PHP_FUNCTION(imap_mail_compose)
3194
3196
if ((pvalue = zend_hash_str_find (Z_ARRVAL_P (data ), "type.parameters" , sizeof ("type.parameters" ) - 1 )) != NULL ) {
3195
3197
if (Z_TYPE_P (pvalue ) == IS_ARRAY ) {
3196
3198
disp_param = tmp_param = NULL ;
3199
+ SEPARATE_ARRAY (pvalue );
3197
3200
ZEND_HASH_FOREACH_STR_KEY_VAL (Z_ARRVAL_P (pvalue ), key , disp_data ) {
3198
3201
if (key == NULL ) continue ;
3199
3202
disp_param = mail_newbody_parameter ();
@@ -3227,6 +3230,7 @@ PHP_FUNCTION(imap_mail_compose)
3227
3230
if ((pvalue = zend_hash_str_find (Z_ARRVAL_P (data ), "disposition" , sizeof ("disposition" ) - 1 )) != NULL ) {
3228
3231
if (Z_TYPE_P (pvalue ) == IS_ARRAY ) {
3229
3232
disp_param = tmp_param = NULL ;
3233
+ SEPARATE_ARRAY (pvalue );
3230
3234
ZEND_HASH_FOREACH_STR_KEY_VAL (Z_ARRVAL_P (pvalue ), key , disp_data ) {
3231
3235
if (key == NULL ) continue ;
3232
3236
disp_param = mail_newbody_parameter ();
@@ -3262,6 +3266,7 @@ PHP_FUNCTION(imap_mail_compose)
3262
3266
}
3263
3267
} else if (Z_TYPE_P (data ) == IS_ARRAY ) {
3264
3268
short type = -1 ;
3269
+ SEPARATE_ARRAY (data );
3265
3270
if ((pvalue = zend_hash_str_find (Z_ARRVAL_P (data ), "type" , sizeof ("type" ) - 1 )) != NULL ) {
3266
3271
type = (short ) zval_get_long (pvalue );
3267
3272
}
@@ -3296,6 +3301,7 @@ PHP_FUNCTION(imap_mail_compose)
3296
3301
if ((pvalue = zend_hash_str_find (Z_ARRVAL_P (data ), "type.parameters" , sizeof ("type.parameters" ) - 1 )) != NULL ) {
3297
3302
if (Z_TYPE_P (pvalue ) == IS_ARRAY ) {
3298
3303
disp_param = tmp_param = NULL ;
3304
+ SEPARATE_ARRAY (pvalue );
3299
3305
ZEND_HASH_FOREACH_STR_KEY_VAL (Z_ARRVAL_P (pvalue ), key , disp_data ) {
3300
3306
if (key == NULL ) continue ;
3301
3307
disp_param = mail_newbody_parameter ();
@@ -3329,6 +3335,7 @@ PHP_FUNCTION(imap_mail_compose)
3329
3335
if ((pvalue = zend_hash_str_find (Z_ARRVAL_P (data ), "disposition" , sizeof ("disposition" ) - 1 )) != NULL ) {
3330
3336
if (Z_TYPE_P (pvalue ) == IS_ARRAY ) {
3331
3337
disp_param = tmp_param = NULL ;
3338
+ SEPARATE_ARRAY (pvalue );
3332
3339
ZEND_HASH_FOREACH_STR_KEY_VAL (Z_ARRVAL_P (pvalue ), key , disp_data ) {
3333
3340
if (key == NULL ) continue ;
3334
3341
disp_param = mail_newbody_parameter ();
0 commit comments