mirror of
https://github.com/php/php-src.git
synced 2025-08-17 22:48:57 +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:
|
||||
. 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
|
||||
|
||||
|
|
|
@ -225,7 +225,7 @@ static int php_mail_detect_multiple_crlf(char *hdr) {
|
|||
/* This function detects multiple/malformed multiple newlines. */
|
||||
size_t len;
|
||||
|
||||
if (!hdr) {
|
||||
if (!hdr || !strlen(hdr)) {
|
||||
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);
|
||||
|
||||
if (headers != NULL) {
|
||||
if (headers != NULL && *headers) {
|
||||
spprintf(&hdr, 0, "X-PHP-Originating-Script: %ld:%s\n%s", php_getuid(TSRMLS_C), f, headers);
|
||||
} else {
|
||||
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);
|
||||
#if PHP_SIGCHILD
|
||||
if (sig_handler) {
|
||||
signal(SIGCHLD, sig_handler);
|
||||
signal(SIGCHLD, sig_handler);
|
||||
}
|
||||
#endif
|
||||
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