diff options
author | Christoph M. Becker <cmbecker69@gmx.de> | 2020-01-06 14:48:22 +0100 |
---|---|---|
committer | Christoph M. Becker <cmbecker69@gmx.de> | 2020-01-06 14:48:46 +0100 |
commit | 09ebeba1afdfa6dd6695781e441207cd790f0d42 (patch) | |
tree | 33b5e1c7fd01d504ae1c6632c9117a84036ed88d | |
parent | 68f6ab711323678382d2746e57358d3f57a3446b (diff) | |
parent | ae2150692a9a2e0878314385d03826f160e6a76a (diff) | |
download | php-git-09ebeba1afdfa6dd6695781e441207cd790f0d42.tar.gz |
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
Fix #54298: Using empty additional_headers adding extraneous CRLF
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | ext/standard/mail.c | 2 | ||||
-rw-r--r-- | ext/standard/tests/mail/bug54298.phpt | 24 |
3 files changed, 27 insertions, 1 deletions
@@ -82,6 +82,8 @@ PHP NEWS - Standard: . Fixed bug #79000 (Non-blocking socket stream reports EAGAIN as error). (Nikita) + . Fixed bug #54298 (Using empty additional_headers adding extraneous CRLF). + (cmb) 18 Dec 2019, PHP 7.4.1 diff --git a/ext/standard/mail.c b/ext/standard/mail.c index c1a21c4059..b27923aca1 100644 --- a/ext/standard/mail.c +++ b/ext/standard/mail.c @@ -368,7 +368,7 @@ PHP_FUNCTION(mail) extra_cmd = php_escape_shell_cmd(ZSTR_VAL(extra_cmd)); } - if (php_mail(to_r, subject_r, message, str_headers ? ZSTR_VAL(str_headers) : NULL, extra_cmd ? ZSTR_VAL(extra_cmd) : NULL)) { + if (php_mail(to_r, subject_r, message, str_headers && ZSTR_LEN(str_headers) ? ZSTR_VAL(str_headers) : NULL, extra_cmd ? ZSTR_VAL(extra_cmd) : NULL)) { RETVAL_TRUE; } else { RETVAL_FALSE; diff --git a/ext/standard/tests/mail/bug54298.phpt b/ext/standard/tests/mail/bug54298.phpt new file mode 100644 index 0000000000..a2ab9c83ab --- /dev/null +++ b/ext/standard/tests/mail/bug54298.phpt @@ -0,0 +1,24 @@ +--TEST-- +Bug #54298 (Using empty additional_headers adding extraneous CRLF) +--INI-- +sendmail_path=tee bug54298.eml >/dev/null +mail.add_x_header = Off +--SKIPIF-- +<?php +if (PHP_OS_FAMILY === 'Windows') die("skip Won't run on Windows"); +?> +--FILE-- +<?php +var_dump(mail('someuser@example.com', 'testsubj', 'Body part', '')); +echo file_get_contents('bug54298.eml'); +?> +--EXPECT-- +bool(true) +To: someuser@example.com +Subject: testsubj + +Body part +--CLEAN-- +<?php +unlink('bug54298.eml'); +?> |