ID: 45705
User updated by: jan at horde dot org
Reported By: jan at horde dot org
Status: Assigned
Bug Type: IMAP related
Operating System: Linux
PHP Version: 5.3.0alpha1
Assigned To: jani
New Comment:
Looks like this only happens with imap_mail_compose() with uses
rfc822_parse_adrlist(). imap_mail() with uses that function through
_php_imap_mail() is not affected. New test:
--TEST--
imap_rfc822_parse_adrlist() adding NUL byte to argument.
--SKIPIF--
<?php if (!extension_exists('imap')) echo 'skip IMAP extension not
installed'; ?>
--FILE--
<?php
$address = 'John Doe <[EMAIL PROTECTED]>';
imap_rfc822_parse_adrlist($address, null);
echo $address;
echo "\n";
$envelope = array('return_path' => 'John Doe <[EMAIL PROTECTED]>',
'from' => 'John Doe <[EMAIL PROTECTED]>',
'reply_to' => 'John Doe <[EMAIL PROTECTED]>',
'to' => 'John Doe <[EMAIL PROTECTED]>',
'cc' => 'John Doe <[EMAIL PROTECTED]>',
'bcc' => 'John Doe <[EMAIL PROTECTED]>');
imap_mail_compose($envelope, array(1 => array()));
var_export($envelope);
echo "\n";
$to = 'John Doe <[EMAIL PROTECTED]>';
$cc = 'John Doe <[EMAIL PROTECTED]>';
$bcc = 'John Doe <[EMAIL PROTECTED]>';
imap_mail($to, 'Subject', 'Body', '', $cc, $bcc);
echo $to;
echo "\n";
echo $cc;
echo "\n";
echo $bcc;
?>
--EXPECT--
John Doe <[EMAIL PROTECTED]>
array (
'return_path' => 'John Doe <[EMAIL PROTECTED]>',
'from' => 'John Doe <[EMAIL PROTECTED]>',
'reply_to' => 'John Doe <[EMAIL PROTECTED]>',
'to' => 'John Doe <[EMAIL PROTECTED]>',
'cc' => 'John Doe <[EMAIL PROTECTED]>',
'bcc' => 'John Doe <[EMAIL PROTECTED]>',
)
John Doe <[EMAIL PROTECTED]>
John Doe <[EMAIL PROTECTED]>
John Doe <[EMAIL PROTECTED]>
Previous Comments:
------------------------------------------------------------------------
[2008-08-04 13:36:05] [EMAIL PROTECTED]
Can't reproduce with PHP_5_2 branch. Looks like someone didn't bother
merging some fixes from that branch to HEAD/PHP_5_3..
------------------------------------------------------------------------
[2008-08-04 13:12:10] [EMAIL PROTECTED]
I guess this affects ALL places using rfc822_parse_adrlist() and not
duplicating the passed data. I'll look into this. Maybe you could
provide more tests those functions that use this c-client func? :)
------------------------------------------------------------------------
[2008-08-04 09:48:47] jan at horde dot org
Description:
------------
imap_rfc822_parse_adrlist() adds a NUL byte (actually replace a space
with one) in the passed string argument.
Reproduce code:
---------------
--TEST--
imap_rfc822_parse_adrlist() adding NUL byte to argument.
--SKIPIF--
<?php if (!extension_exists('imap')) echo 'skip IMAP extension not
installed'; ?>
--FILE--
<?php
$address = 'John Doe <[EMAIL PROTECTED]>';
imap_rfc822_parse_adrlist($address, null);
echo $address;
?>
--EXPECT--
John Doe <[EMAIL PROTECTED]>
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=45705&edit=1