diff options
author | Ilia Alshanetsky <iliaa@php.net> | 2007-03-19 22:56:57 +0000 |
---|---|---|
committer | Ilia Alshanetsky <iliaa@php.net> | 2007-03-19 22:56:57 +0000 |
commit | 13aac95bfc915cad93916105ac2848455831000f (patch) | |
tree | 802cf7d4ae8c0b63b703054ab8c5468200776850 /ext/imap | |
parent | b0a875104eabf24cf2f210655d84b18b01a00791 (diff) | |
download | php-git-13aac95bfc915cad93916105ac2848455831000f.tar.gz |
Fixed bug #40854 (imap_mail_compose() creates an invalid terminator for
multipart e-mails).
Diffstat (limited to 'ext/imap')
-rw-r--r-- | ext/imap/php_imap.c | 4 | ||||
-rw-r--r-- | ext/imap/tests/bug40854.phpt | 57 |
2 files changed, 59 insertions, 2 deletions
diff --git a/ext/imap/php_imap.c b/ext/imap/php_imap.c index aedfe5d571..aa3c26182e 100644 --- a/ext/imap/php_imap.c +++ b/ext/imap/php_imap.c @@ -3188,7 +3188,7 @@ PHP_FUNCTION(imap_mail_compose) disp_param->next = tmp_param; tmp_param = disp_param; } - bod->parameter = disp_param; + bod->parameter = disp_param; } } if (zend_hash_find(Z_ARRVAL_PP(data), "subtype", sizeof("subtype"), (void **) &pvalue)== SUCCESS) { @@ -3337,7 +3337,7 @@ PHP_FUNCTION(imap_mail_compose) } while ((part = part->next)); /* until done */ /* output trailing cookie */ - spprintf(&tempstring, 0, "%s--%s--%s", mystring, tmp, CRLF); + spprintf(&tempstring, 0, "%s--%s--%s", mystring, cookie, CRLF); efree(mystring); mystring=tempstring; } else if (bod) { diff --git a/ext/imap/tests/bug40854.phpt b/ext/imap/tests/bug40854.phpt new file mode 100644 index 0000000000..3df81ea29d --- /dev/null +++ b/ext/imap/tests/bug40854.phpt @@ -0,0 +1,57 @@ +--TEST-- +Bug #40854 (imap_mail_compose() creates an invalid terminator for multipart e-mails) +--SKIPIF-- +<?php + if (!extension_loaded("imap")) { + die("skip imap extension not available"); + } +?> +--FILE-- +<?php +$envelope["from"]= "joe@example.com"; +$envelope["to"] = "foo@example.com"; +$envelope["cc"] = "bar@example.com"; + +$part1["type"] = TYPEMULTIPART; +$part1["subtype"] = "mixed"; + +$part2["type"] = TYPEAPPLICATION; +$part2["encoding"] = ENCBINARY; +$part2["subtype"] = "octet-stream"; +$part2["description"] = 'a.txt'; +$part2["contents.data"] = ''; + +$part3["type"] = TYPETEXT; +$part3["subtype"] = "plain"; +$part3["description"] = "description3"; +$part3["contents.data"] = "contents.data3\n\n\n\t"; + +$body[1] = $part1; +$body[2] = $part2; +$body[3] = $part3; + +echo imap_mail_compose($envelope, $body); +?> +--EXPECTF-- +From: joe@example.com +To: foo@example.com +cc: bar@example.com +MIME-Version: 1.0 +Content-Type: MULTIPART/mixed; BOUNDARY="%s" + +--%s +Content-Type: APPLICATION/octet-stream +Content-Transfer-Encoding: BASE64 +Content-Description: a.txt + + + +--%s +Content-Type: TEXT/plain; CHARSET=US-ASCII +Content-Description: description3 + +contents.data3 + + + +--%s--
\ No newline at end of file |