#25923 [Opn->Csd]: 'to' parmeter of mail() gets altered when containing trailing whitespace
| From: | iliaa@php.net | Date: | Mon, 20 Oct 2003 14:21:53 +0000 |
| Subject: | #25923 [Opn->Csd]: 'to' parmeter of mail() gets altered when containing trailing whitespace | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-49237@lists.php.net to get a copy of this message | ||
ID: 25923
Updated by: iliaa@php.net
Reported By: tom at scl dot co dot uk
-Status: Open
+Status: Closed
Bug Type: Mail related
Operating System: Linux 2.4.18
PHP Version: 4.3.3
New Comment:
This bug has been fixed in CVS.
In case this was a PHP problem, snapshots of the sources are packaged
every three hours; this change will be in the next snapshot. You can
grab the snapshot at http://snaps.php.net/.
In case this was a documentation problem, the fix will show up soon at
http://www.php.net/manual/.
In case this was a PHP.net website problem, the change will show
up on the PHP.net site and on the mirror sites in short time.
Thank you for the report, and for helping us make PHP better.
Previous Comments:
------------------------------------------------------------------------
[2003-10-20 08:00:41] tom at scl dot co dot uk
Description:
------------
When you hand a variable to the 'to' parameter of the mail() function
which has trailing whitespace the PHP variable get altered!
It seems the mail() function is stripping the trailing whitespace by
putting a null character at the start of it, but this is somehow
getting back into the PHP variable (as if it had been passed by
reference?) so the PHP variable contains a null character where the
trailing whitespace started before the mail() function was called.
Reproduce code:
---------------
<?php
// to address with trailing space
$to = 'tom@scl.co.uk ';
// Output the ASCII code for the last char
// in the $to address string
print("Last char=".ord($to{strlen($to)-1})."\n");
// Send a message to the email address in $to
mail($to, "Subject", "Message");
// Output the ASCII code for the last char
// in the $to address string
print("Last char=".ord($to{strlen($to)-1})."\n");
?>
Expected result:
----------------
Last char=32
Last char=32
Actual result:
--------------
Last char=32
Last char=0
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=25923&edit=1