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