@@ -3318,6 +3318,8 @@ PHP_FUNCTION(mb_decode_numericentity)
3318
3318
/* }}} */
3319
3319
3320
3320
/* {{{ Sends an email message with MIME scheme */
3321
+ #define CRLF "\r\n"
3322
+
3321
3323
static int _php_mbstr_parse_mail_headers (HashTable * ht , const char * str , size_t str_len )
3322
3324
{
3323
3325
const char * ps ;
@@ -3649,7 +3651,7 @@ PHP_FUNCTION(mb_send_mail)
3649
3651
|| orig_str .encoding -> no_encoding == mbfl_no_encoding_pass ) {
3650
3652
orig_str .encoding = mbfl_identify_encoding (& orig_str , MBSTRG (current_detect_order_list ), MBSTRG (current_detect_order_list_size ), MBSTRG (strict_detection ));
3651
3653
}
3652
- pstr = mbfl_mime_header_encode (& orig_str , & conv_str , tran_cs , head_enc , "\n" , sizeof ("Subject: [PHP-jp nnnnnnnn]" ) );
3654
+ pstr = mbfl_mime_header_encode (& orig_str , & conv_str , tran_cs , head_enc , CRLF , sizeof ("Subject: [PHP-jp nnnnnnnn]" CRLF ) - 1 );
3653
3655
if (pstr != NULL ) {
3654
3656
subject_buf = subject = (char * )pstr -> val ;
3655
3657
}
@@ -3688,14 +3690,14 @@ PHP_FUNCTION(mb_send_mail)
3688
3690
n = ZSTR_LEN (str_headers );
3689
3691
mbfl_memory_device_strncat (& device , p , n );
3690
3692
if (n > 0 && p [n - 1 ] != '\n' ) {
3691
- mbfl_memory_device_strncat (& device , "\n" , 1 );
3693
+ mbfl_memory_device_strncat (& device , CRLF , sizeof ( CRLF ) - 1 );
3692
3694
}
3693
3695
zend_string_release_ex (str_headers , 0 );
3694
3696
}
3695
3697
3696
3698
if (!zend_hash_str_exists (& ht_headers , "mime-version" , sizeof ("mime-version" ) - 1 )) {
3697
3699
mbfl_memory_device_strncat (& device , PHP_MBSTR_MAIL_MIME_HEADER1 , sizeof (PHP_MBSTR_MAIL_MIME_HEADER1 ) - 1 );
3698
- mbfl_memory_device_strncat (& device , "\n" , 1 );
3700
+ mbfl_memory_device_strncat (& device , CRLF , sizeof ( CRLF ) - 1 );
3699
3701
}
3700
3702
3701
3703
if (!suppressed_hdrs .cnt_type ) {
@@ -3706,7 +3708,7 @@ PHP_FUNCTION(mb_send_mail)
3706
3708
mbfl_memory_device_strncat (& device , PHP_MBSTR_MAIL_MIME_HEADER3 , sizeof (PHP_MBSTR_MAIL_MIME_HEADER3 ) - 1 );
3707
3709
mbfl_memory_device_strcat (& device , p );
3708
3710
}
3709
- mbfl_memory_device_strncat (& device , "\n" , 1 );
3711
+ mbfl_memory_device_strncat (& device , CRLF , sizeof ( CRLF ) - 1 );
3710
3712
}
3711
3713
if (!suppressed_hdrs .cnt_trans_enc ) {
3712
3714
mbfl_memory_device_strncat (& device , PHP_MBSTR_MAIL_MIME_HEADER4 , sizeof (PHP_MBSTR_MAIL_MIME_HEADER4 ) - 1 );
@@ -3715,9 +3717,10 @@ PHP_FUNCTION(mb_send_mail)
3715
3717
p = "7bit" ;
3716
3718
}
3717
3719
mbfl_memory_device_strcat (& device , p );
3718
- mbfl_memory_device_strncat (& device , "\n" , 1 );
3720
+ mbfl_memory_device_strncat (& device , CRLF , sizeof ( CRLF ) - 1 );
3719
3721
}
3720
3722
3723
+ mbfl_memory_device_unput (& device );
3721
3724
mbfl_memory_device_unput (& device );
3722
3725
mbfl_memory_device_output ('\0' , & device );
3723
3726
str_headers = zend_string_init ((char * )device .buffer , strlen ((char * )device .buffer ), 0 );
@@ -3754,6 +3757,7 @@ PHP_FUNCTION(mb_send_mail)
3754
3757
}
3755
3758
}
3756
3759
3760
+ #undef CRLF
3757
3761
#undef MAIL_ASCIIZ_CHECK_MBSTRING
3758
3762
#undef PHP_MBSTR_MAIL_MIME_HEADER1
3759
3763
#undef PHP_MBSTR_MAIL_MIME_HEADER2
0 commit comments