mirror of
https://github.com/php/php-src.git
synced 2025-08-18 06:58:55 +02:00
Merge branch 'pull-request/1350' into PHP-5.4
* pull-request/1350: Move strlen() check to php_mail_detect_multiple_crlf() Fixed Bug #69874 : Can't set empty additional_headers for mail()
This commit is contained in:
commit
cd9c39d77c
4 changed files with 90 additions and 3 deletions
2
NEWS
2
NEWS
|
@ -4,6 +4,8 @@ PHP NEWS
|
||||||
|
|
||||||
- Core:
|
- Core:
|
||||||
. Fixed bug #69768 (escapeshell*() doesn't cater to !). (cmb)
|
. Fixed bug #69768 (escapeshell*() doesn't cater to !). (cmb)
|
||||||
|
. Fixed bug #69874 (Can't set empty additional_headers for mail()), regression
|
||||||
|
from fix to bug #68776. (Yasuo)
|
||||||
|
|
||||||
11 Jun 2015 PHP 5.4.42
|
11 Jun 2015 PHP 5.4.42
|
||||||
|
|
||||||
|
|
|
@ -225,7 +225,7 @@ static int php_mail_detect_multiple_crlf(char *hdr) {
|
||||||
/* This function detects multiple/malformed multiple newlines. */
|
/* This function detects multiple/malformed multiple newlines. */
|
||||||
size_t len;
|
size_t len;
|
||||||
|
|
||||||
if (!hdr) {
|
if (!hdr || !strlen(hdr)) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -312,7 +312,7 @@ PHPAPI int php_mail(char *to, char *subject, char *message, char *headers, char
|
||||||
|
|
||||||
php_basename(tmp, strlen(tmp), NULL, 0,&f, &f_len TSRMLS_CC);
|
php_basename(tmp, strlen(tmp), NULL, 0,&f, &f_len TSRMLS_CC);
|
||||||
|
|
||||||
if (headers != NULL) {
|
if (headers != NULL && *headers) {
|
||||||
spprintf(&hdr, 0, "X-PHP-Originating-Script: %ld:%s\n%s", php_getuid(TSRMLS_C), f, headers);
|
spprintf(&hdr, 0, "X-PHP-Originating-Script: %ld:%s\n%s", php_getuid(TSRMLS_C), f, headers);
|
||||||
} else {
|
} else {
|
||||||
spprintf(&hdr, 0, "X-PHP-Originating-Script: %ld:%s", php_getuid(TSRMLS_C), f);
|
spprintf(&hdr, 0, "X-PHP-Originating-Script: %ld:%s", php_getuid(TSRMLS_C), f);
|
||||||
|
@ -420,7 +420,7 @@ PHPAPI int php_mail(char *to, char *subject, char *message, char *headers, char
|
||||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Could not execute mail delivery program '%s'", sendmail_path);
|
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Could not execute mail delivery program '%s'", sendmail_path);
|
||||||
#if PHP_SIGCHILD
|
#if PHP_SIGCHILD
|
||||||
if (sig_handler) {
|
if (sig_handler) {
|
||||||
signal(SIGCHLD, sig_handler);
|
signal(SIGCHLD, sig_handler);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
MAIL_RET(0);
|
MAIL_RET(0);
|
||||||
|
|
42
ext/standard/tests/mail/bug69874.phpt
Normal file
42
ext/standard/tests/mail/bug69874.phpt
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
--TEST--
|
||||||
|
Bug #69874: Null addtional_headers does not send mail
|
||||||
|
--INI--
|
||||||
|
sendmail_path=tee mailBasic.out >/dev/null
|
||||||
|
mail.add_x_header = Off
|
||||||
|
--SKIPIF--
|
||||||
|
<?php
|
||||||
|
if(substr(PHP_OS, 0, 3) == "WIN")
|
||||||
|
die("skip Won't run on Windows");
|
||||||
|
?>
|
||||||
|
--FILE--
|
||||||
|
<?php
|
||||||
|
/* Prototype : int mail(string to, string subject, string message [, string additional_headers [, string additional_parameters]])
|
||||||
|
* Description: Send an email message
|
||||||
|
* Source code: ext/standard/mail.c
|
||||||
|
* Alias to functions:
|
||||||
|
*/
|
||||||
|
|
||||||
|
echo "*** Testing mail() : send email without additional headers ***\n";
|
||||||
|
|
||||||
|
// Initialise all required variables
|
||||||
|
$to = 'user@company.com';
|
||||||
|
$subject = 'Test Subject';
|
||||||
|
$message = 'A Message';
|
||||||
|
|
||||||
|
$outFile = "mailBasic.out";
|
||||||
|
@unlink($outFile);
|
||||||
|
|
||||||
|
var_dump( mail($to, $subject, $message) );
|
||||||
|
echo file_get_contents($outFile);
|
||||||
|
unlink($outFile);
|
||||||
|
|
||||||
|
?>
|
||||||
|
===DONE===
|
||||||
|
--EXPECTF--
|
||||||
|
*** Testing mail() : send email without additional headers ***
|
||||||
|
bool(true)
|
||||||
|
To: user@company.com
|
||||||
|
Subject: Test Subject
|
||||||
|
|
||||||
|
A Message
|
||||||
|
===DONE===
|
43
ext/standard/tests/mail/bug69874_2.phpt
Normal file
43
ext/standard/tests/mail/bug69874_2.phpt
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
--TEST--
|
||||||
|
Bug #69874: Null addtional_headers does not send mail
|
||||||
|
--INI--
|
||||||
|
sendmail_path=tee mailBasic.out >/dev/null
|
||||||
|
mail.add_x_header = On
|
||||||
|
--SKIPIF--
|
||||||
|
<?php
|
||||||
|
if(substr(PHP_OS, 0, 3) == "WIN")
|
||||||
|
die("skip Won't run on Windows");
|
||||||
|
?>
|
||||||
|
--FILE--
|
||||||
|
<?php
|
||||||
|
/* Prototype : int mail(string to, string subject, string message [, string additional_headers [, string additional_parameters]])
|
||||||
|
* Description: Send an email message
|
||||||
|
* Source code: ext/standard/mail.c
|
||||||
|
* Alias to functions:
|
||||||
|
*/
|
||||||
|
|
||||||
|
echo "*** Testing mail() : send email without additional headers ***\n";
|
||||||
|
|
||||||
|
// Initialise all required variables
|
||||||
|
$to = 'user@company.com';
|
||||||
|
$subject = 'Test Subject';
|
||||||
|
$message = 'A Message';
|
||||||
|
|
||||||
|
$outFile = "mailBasic.out";
|
||||||
|
@unlink($outFile);
|
||||||
|
|
||||||
|
var_dump( mail($to, $subject, $message, '') );
|
||||||
|
echo file_get_contents($outFile);
|
||||||
|
unlink($outFile);
|
||||||
|
|
||||||
|
?>
|
||||||
|
===DONE===
|
||||||
|
--EXPECTF--
|
||||||
|
*** Testing mail() : send email without additional headers ***
|
||||||
|
bool(true)
|
||||||
|
To: user@company.com
|
||||||
|
Subject: Test Subject
|
||||||
|
X-PHP-Originating-Script: %d:bug69874_2.php
|
||||||
|
|
||||||
|
A Message
|
||||||
|
===DONE===
|
Loading…
Add table
Add a link
Reference in a new issue