From 7addde8521ba8436cecc15bd61a78c76ebc13382 Mon Sep 17 00:00:00 2001 From: Moriyoshi Koizumi Date: Wed, 13 Nov 2002 08:26:04 +0000 Subject: [PATCH] Prevented unwanted encoding detections in mb_send_mail() # This patch shouldn't break BC --- ext/mbstring/mbstring.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c index 29d9489a9c..30fb0650ff 100644 --- a/ext/mbstring/mbstring.c +++ b/ext/mbstring/mbstring.c @@ -3344,9 +3344,10 @@ PHP_FUNCTION(mb_send_mail) orig_str.no_language = MBSTRG(current_language); orig_str.val = (unsigned char *)Z_STRVAL_PP(argv[1]); orig_str.len = Z_STRLEN_PP(argv[1]); - orig_str.no_encoding = mbfl_identify_encoding_no(&orig_str, MBSTRG(current_detect_order_list), MBSTRG(current_detect_order_list_size) TSRMLS_CC); - if (orig_str.no_encoding == mbfl_no_encoding_invalid) { - orig_str.no_encoding = MBSTRG(current_internal_encoding); + orig_str.no_encoding = MBSTRG(current_internal_encoding); + if (orig_str.no_encoding == mbfl_no_encoding_invalid + || orig_str.no_encoding == mbfl_no_encoding_pass) { + orig_str.no_encoding = mbfl_identify_encoding_no(&orig_str, MBSTRG(current_detect_order_list), MBSTRG(current_detect_order_list_size) TSRMLS_CC); } pstr = mbfl_mime_header_encode(&orig_str, &conv_str, tran_cs, head_enc, "\n", sizeof("Subject: [PHP-jp nnnnnnnn]") TSRMLS_CC); if (pstr != NULL) { @@ -3365,9 +3366,11 @@ PHP_FUNCTION(mb_send_mail) orig_str.no_language = MBSTRG(current_language); orig_str.val = Z_STRVAL_PP(argv[2]); orig_str.len = Z_STRLEN_PP(argv[2]); - orig_str.no_encoding = mbfl_identify_encoding_no(&orig_str, MBSTRG(current_detect_order_list), MBSTRG(current_detect_order_list_size) TSRMLS_CC); - if (orig_str.no_encoding == mbfl_no_encoding_invalid) { - orig_str.no_encoding = MBSTRG(current_internal_encoding); + orig_str.no_encoding = MBSTRG(current_internal_encoding); + + if (orig_str.no_encoding == mbfl_no_encoding_invalid + || orig_str.no_encoding == mbfl_no_encoding_pass) { + orig_str.no_encoding = mbfl_identify_encoding_no(&orig_str, MBSTRG(current_detect_order_list), MBSTRG(current_detect_order_list_size) TSRMLS_CC); } pstr = mbfl_convert_encoding(&orig_str, &conv_str, tran_cs TSRMLS_CC); if (pstr != NULL) { -- 2.50.1