From: Moriyoshi Koizumi Date: Fri, 31 Jan 2003 14:15:49 +0000 (+0000) Subject: Fixed a mb_send_mail() bug that has been reported in php-i18n@lists.php.net X-Git-Tag: RELEASE_0_5~1349 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b00cc4f2bb3b3bfc1312f3fe6e805f05716bc610;p=php Fixed a mb_send_mail() bug that has been reported in php-i18n@lists.php.net See http://lists.php.net/article.php?group=php.i18n&article=427 --- diff --git a/ext/mbstring/mbfilter.c b/ext/mbstring/mbfilter.c index 2d44c2be23..65f599aa95 100644 --- a/ext/mbstring/mbfilter.c +++ b/ext/mbstring/mbfilter.c @@ -7440,8 +7440,10 @@ mbfl_convert_encoding( if (filter1 == NULL) { return NULL; } - filter2->illegal_mode = MBFL_OUTPUTFILTER_ILLEGAL_MODE_CHAR; - filter2->illegal_substchar = 0x3f; /* '?' */ + if (filter2 != NULL) { + filter2->illegal_mode = MBFL_OUTPUTFILTER_ILLEGAL_MODE_CHAR; + filter2->illegal_substchar = 0x3f; /* '?' */ + } mbfl_memory_device_init(&device, string->len, (string->len >> 2) + 8 TSRMLS_CC); /* feed data */ diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c index 614d5bf884..e40b7881aa 100644 --- a/ext/mbstring/mbstring.c +++ b/ext/mbstring/mbstring.c @@ -2830,11 +2830,21 @@ PHP_FUNCTION(mb_send_mail) || 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); + + pstr = NULL; + { + mbfl_string tmpstr; + + if (mbfl_convert_encoding(&orig_str, &tmpstr, tran_cs TSRMLS_CC) != NULL) { + tmpstr.no_encoding=mbfl_no_encoding_8bit; + pstr = mbfl_convert_encoding(&tmpstr, &conv_str, body_enc TSRMLS_CC); + efree(tmpstr.val); + } + } if (pstr != NULL) { message_buf = message = (char *)pstr->val; } else { - message = Z_STRVAL_PP(argv[2]); + message = estrndup(Z_STRVAL_PP(argv[2]), Z_STRLEN_PP(argv[2])); } } else { /* this is not really an error, so it is allowed. */ diff --git a/ext/mbstring/tests/mb_send_mail01.phpt b/ext/mbstring/tests/mb_send_mail01.phpt index 55798e9abc..965c857f04 100644 --- a/ext/mbstring/tests/mb_send_mail01.phpt +++ b/ext/mbstring/tests/mb_send_mail01.phpt @@ -28,11 +28,11 @@ Mime-Version: 1.0 Content-Type: text/plain; charset=%s Content-Transfer-Encoding: %s -test +dGVzdA== To: example@example.com Subject: test neutral Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: BASE64 -test +dGVzdA== diff --git a/ext/mbstring/tests/mb_send_mail02.phpt b/ext/mbstring/tests/mb_send_mail02.phpt index 6d93fb3afc..17a6cef899 100644 --- a/ext/mbstring/tests/mb_send_mail02.phpt +++ b/ext/mbstring/tests/mb_send_mail02.phpt @@ -28,7 +28,7 @@ Mime-Version: 1.0 Content-Type: text/plain; charset=%s Content-Transfer-Encoding: %s -test +dGVzdA== To: example@example.com Subject: =?ISO-2022-JP?B?GyRCJUYlOSVIGyhCIEphcGFuZXNl?= Mime-Version: 1.0 diff --git a/ext/mbstring/tests/mb_send_mail03.phpt b/ext/mbstring/tests/mb_send_mail03.phpt index 27a8402b60..43ca36a8ac 100644 --- a/ext/mbstring/tests/mb_send_mail03.phpt +++ b/ext/mbstring/tests/mb_send_mail03.phpt @@ -28,7 +28,7 @@ Mime-Version: 1.0 Content-Type: text/plain; charset=%s Content-Transfer-Encoding: %s -test +dGVzdA== To: example@example.com Subject: test English Mime-Version: 1.0 diff --git a/ext/mbstring/tests/mb_send_mail04.phpt b/ext/mbstring/tests/mb_send_mail04.phpt index 05100018f8..2523351e12 100644 --- a/ext/mbstring/tests/mb_send_mail04.phpt +++ b/ext/mbstring/tests/mb_send_mail04.phpt @@ -28,7 +28,7 @@ Mime-Version: 1.0 Content-Type: text/plain; charset=%s Content-Transfer-Encoding: %s -test +dGVzdA== To: example@example.com Subject: =?ISO-8859-15?Q?Pr=FCfung=20German?= Mime-Version: 1.0 diff --git a/ext/mbstring/tests/mb_send_mail05.phpt b/ext/mbstring/tests/mb_send_mail05.phpt index b36b41813e..7eb232f68f 100644 --- a/ext/mbstring/tests/mb_send_mail05.phpt +++ b/ext/mbstring/tests/mb_send_mail05.phpt @@ -31,7 +31,7 @@ Mime-Version: 1.0 Content-Type: text/plain; charset=%s Content-Transfer-Encoding: %s -test +dGVzdA== To: example@example.com Subject: =?HZ-GB-2312?B?fnsyYlFpfn0gU2ltcGxpZmllZCBD?= =?HZ-GB-2312?B?aGluZXNl?= diff --git a/ext/mbstring/tests/mb_send_mail06.phpt b/ext/mbstring/tests/mb_send_mail06.phpt index b8dafe58cc..e92bfd1c9e 100644 --- a/ext/mbstring/tests/mb_send_mail06.phpt +++ b/ext/mbstring/tests/mb_send_mail06.phpt @@ -31,7 +31,7 @@ Mime-Version: 1.0 Content-Type: text/plain; charset=%s Content-Transfer-Encoding: %s -test +dGVzdA== To: example@example.com Subject: =?BIG5?B?tPrF5yBUcmFkaXRpb25hbCBDaGluZXNl?= Mime-Version: 1.0 diff --git a/ext/mbstring/tests/mb_send_mail07.phpt b/ext/mbstring/tests/mb_send_mail07.phpt index 74c4af97b8..e7ad08254a 100644 --- a/ext/mbstring/tests/mb_send_mail07.phpt +++ b/ext/mbstring/tests/mb_send_mail07.phpt @@ -31,7 +31,7 @@ Mime-Version: 1.0 Content-Type: text/plain; charset=%s Content-Transfer-Encoding: %s -test +dGVzdA== To: example@example.com Subject: =?ISO-2022-KR?B?GyQpQw5FVz06Ri4PIEtvcmVhbg8=?= Mime-Version: 1.0