From dacea3f6fb3f84c79a3412b24547eb2c636754f6 Mon Sep 17 00:00:00 2001 From: Yasuo Ohgaki Date: Fri, 19 Jun 2015 12:19:02 +0900 Subject: Fixed Bug #69874 : Can't set empty additional_headers for mail() --- ext/standard/mail.c | 2 +- ext/standard/tests/mail/bug69874.phpt | 42 +++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 ext/standard/tests/mail/bug69874.phpt diff --git a/ext/standard/mail.c b/ext/standard/mail.c index 448013a472..1c1332b55e 100644 --- a/ext/standard/mail.c +++ b/ext/standard/mail.c @@ -320,7 +320,7 @@ PHPAPI int php_mail(char *to, char *subject, char *message, char *headers, char efree(f); } - if (hdr && php_mail_detect_multiple_crlf(hdr)) { + if (hdr && strlen(hdr) && php_mail_detect_multiple_crlf(hdr)) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Multiple or malformed newlines found in additional_header"); MAIL_RET(0); } diff --git a/ext/standard/tests/mail/bug69874.phpt b/ext/standard/tests/mail/bug69874.phpt new file mode 100644 index 0000000000..a952a73bdc --- /dev/null +++ b/ext/standard/tests/mail/bug69874.phpt @@ -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-- + +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing mail() : send email without additional headers *** +bool(true) +To: user@company.com +Subject: Test Subject + +A Message +===DONE=== -- cgit v1.2.1 From d263ecd8640697d6cde4b71ec722e8a2e5022dcf Mon Sep 17 00:00:00 2001 From: Yasuo Ohgaki Date: Fri, 19 Jun 2015 15:17:56 +0900 Subject: Move strlen() check to php_mail_detect_multiple_crlf() --- ext/standard/mail.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ext/standard/mail.c b/ext/standard/mail.c index 1c1332b55e..aa29a22c85 100644 --- a/ext/standard/mail.c +++ b/ext/standard/mail.c @@ -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; } @@ -320,7 +320,7 @@ PHPAPI int php_mail(char *to, char *subject, char *message, char *headers, char efree(f); } - if (hdr && strlen(hdr) && php_mail_detect_multiple_crlf(hdr)) { + if (hdr && php_mail_detect_multiple_crlf(hdr)) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Multiple or malformed newlines found in additional_header"); MAIL_RET(0); } -- cgit v1.2.1