@@ -3294,6 +3294,8 @@ PHP_FUNCTION(mb_decode_numericentity)
3294
3294
continue; \
3295
3295
}
3296
3296
3297
+ #define CRLF "\r\n"
3298
+
3297
3299
static int _php_mbstr_parse_mail_headers (HashTable * ht , const char * str , size_t str_len )
3298
3300
{
3299
3301
const char * ps ;
@@ -3620,7 +3622,7 @@ PHP_FUNCTION(mb_send_mail)
3620
3622
|| orig_str .encoding -> no_encoding == mbfl_no_encoding_pass ) {
3621
3623
orig_str .encoding = mbfl_identify_encoding (& orig_str , MBSTRG (current_detect_order_list ), MBSTRG (current_detect_order_list_size ), MBSTRG (strict_detection ));
3622
3624
}
3623
- pstr = mbfl_mime_header_encode (& orig_str , & conv_str , tran_cs , head_enc , "\n" , sizeof ("Subject: [PHP-jp nnnnnnnn]" ) );
3625
+ pstr = mbfl_mime_header_encode (& orig_str , & conv_str , tran_cs , head_enc , CRLF , sizeof ("Subject: [PHP-jp nnnnnnnn]" CRLF ) - 1 );
3624
3626
if (pstr != NULL ) {
3625
3627
subject_buf = subject = (char * )pstr -> val ;
3626
3628
}
@@ -3659,14 +3661,14 @@ PHP_FUNCTION(mb_send_mail)
3659
3661
n = ZSTR_LEN (str_headers );
3660
3662
mbfl_memory_device_strncat (& device , p , n );
3661
3663
if (n > 0 && p [n - 1 ] != '\n' ) {
3662
- mbfl_memory_device_strncat (& device , "\n" , 1 );
3664
+ mbfl_memory_device_strncat (& device , CRLF , sizeof ( CRLF ) - 1 );
3663
3665
}
3664
3666
zend_string_release_ex (str_headers , 0 );
3665
3667
}
3666
3668
3667
3669
if (!zend_hash_str_exists (& ht_headers , "mime-version" , sizeof ("mime-version" ) - 1 )) {
3668
3670
mbfl_memory_device_strncat (& device , PHP_MBSTR_MAIL_MIME_HEADER1 , sizeof (PHP_MBSTR_MAIL_MIME_HEADER1 ) - 1 );
3669
- mbfl_memory_device_strncat (& device , "\n" , 1 );
3671
+ mbfl_memory_device_strncat (& device , CRLF , sizeof ( CRLF ) - 1 );
3670
3672
}
3671
3673
3672
3674
if (!suppressed_hdrs .cnt_type ) {
@@ -3677,7 +3679,7 @@ PHP_FUNCTION(mb_send_mail)
3677
3679
mbfl_memory_device_strncat (& device , PHP_MBSTR_MAIL_MIME_HEADER3 , sizeof (PHP_MBSTR_MAIL_MIME_HEADER3 ) - 1 );
3678
3680
mbfl_memory_device_strcat (& device , p );
3679
3681
}
3680
- mbfl_memory_device_strncat (& device , "\n" , 1 );
3682
+ mbfl_memory_device_strncat (& device , CRLF , sizeof ( CRLF ) - 1 );
3681
3683
}
3682
3684
if (!suppressed_hdrs .cnt_trans_enc ) {
3683
3685
mbfl_memory_device_strncat (& device , PHP_MBSTR_MAIL_MIME_HEADER4 , sizeof (PHP_MBSTR_MAIL_MIME_HEADER4 ) - 1 );
@@ -3686,9 +3688,10 @@ PHP_FUNCTION(mb_send_mail)
3686
3688
p = "7bit" ;
3687
3689
}
3688
3690
mbfl_memory_device_strcat (& device , p );
3689
- mbfl_memory_device_strncat (& device , "\n" , 1 );
3691
+ mbfl_memory_device_strncat (& device , CRLF , sizeof ( CRLF ) - 1 );
3690
3692
}
3691
3693
3694
+ mbfl_memory_device_unput (& device );
3692
3695
mbfl_memory_device_unput (& device );
3693
3696
mbfl_memory_device_output ('\0' , & device );
3694
3697
str_headers = zend_string_init ((char * )device .buffer , strlen ((char * )device .buffer ), 0 );
@@ -3726,6 +3729,7 @@ PHP_FUNCTION(mb_send_mail)
3726
3729
}
3727
3730
3728
3731
#undef SKIP_LONG_HEADER_SEP_MBSTRING
3732
+ #undef CRLF
3729
3733
#undef MAIL_ASCIIZ_CHECK_MBSTRING
3730
3734
#undef PHP_MBSTR_MAIL_MIME_HEADER1
3731
3735
#undef PHP_MBSTR_MAIL_MIME_HEADER2
0 commit comments