]> granicus.if.org Git - php/commitdiff
[bug 66535] X-PHP-Originating-Script adds newline if no custom headers are given
authorTjerk Meesters <datibbaw@php.net>
Fri, 28 Feb 2014 14:22:07 +0000 (22:22 +0800)
committerTjerk Meesters <datibbaw@php.net>
Fri, 28 Feb 2014 14:22:07 +0000 (22:22 +0800)
A newline is added to the mail headers when mail.add_x_header is used and no other headers are passed to mail().

The scenario in which custom headers are used was already fixed in #48620, back in 2009.

ext/standard/mail.c
ext/standard/tests/mail/bug66535.phpt [new file with mode: 0644]

index 43adfeef714df3baaa4d4a70f8cf4c65b1d80c2f..1ebc8fecb7ef4c266a341cdc701f0686d6482242 100644 (file)
@@ -276,7 +276,7 @@ PHPAPI int php_mail(char *to, char *subject, char *message, char *headers, char
                if (headers != NULL) {
                        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\n", php_getuid(TSRMLS_C), f);
+                       spprintf(&hdr, 0, "X-PHP-Originating-Script: %ld:%s", php_getuid(TSRMLS_C), f);
                }
                efree(f);
        }
diff --git a/ext/standard/tests/mail/bug66535.phpt b/ext/standard/tests/mail/bug66535.phpt
new file mode 100644 (file)
index 0000000..75e1284
--- /dev/null
@@ -0,0 +1,43 @@
+--TEST--
+Test mail() function : basic functionality 
+--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:bug66535.php
+
+A Message
+===DONE===