summaryrefslogtreecommitdiff
path: root/ext/imap/php_imap.c
diff options
context:
space:
mode:
authorIlia Alshanetsky <iliaa@php.net>2004-12-22 17:27:39 +0000
committerIlia Alshanetsky <iliaa@php.net>2004-12-22 17:27:39 +0000
commitb19e6669467a7faee7024e20794da511de8575e9 (patch)
treeba38166491186a5ea3898404994b34b93f4210a1 /ext/imap/php_imap.c
parent287dc7a32b547f690a5e8f26f9ca448497158406 (diff)
downloadphp-git-b19e6669467a7faee7024e20794da511de8575e9.tar.gz
Fixed bug #31142 (imap_mail_compose() fails to generate correct output).
Diffstat (limited to 'ext/imap/php_imap.c')
-rw-r--r--ext/imap/php_imap.c18
1 files changed, 6 insertions, 12 deletions
diff --git a/ext/imap/php_imap.c b/ext/imap/php_imap.c
index 05eabea324..a2c4e43923 100644
--- a/ext/imap/php_imap.c
+++ b/ext/imap/php_imap.c
@@ -3150,8 +3150,9 @@ PHP_FUNCTION(imap_mail_compose)
/* for each part */
do {
+ t=tmp;
/* build cookie */
- sprintf (t=tmp, "--%s%s", cookie, CRLF);
+ sprintf (t, "--%s%s", cookie, CRLF);
/* append mini-header */
rfc822_write_body_header(&t, &part->body);
@@ -3169,29 +3170,22 @@ PHP_FUNCTION(imap_mail_compose)
bod=&part->body;
tempstring=emalloc(strlen(bod->contents.text.data)+strlen(CRLF)+strlen(mystring)+1);
- strcpy(tempstring, mystring);
+ sprintf(tempstring, "%s%s%s", mystring, bod->contents.text.data, CRLF);
efree(mystring);
mystring=tempstring;
- sprintf(mystring, "%s%s%s", mystring, bod->contents.text.data, CRLF);
-
} while ((part = part->next)); /* until done */
/* output trailing cookie */
sprintf(tmp, "--%s--", cookie);
tempstring=emalloc(strlen(tmp)+strlen(CRLF)+strlen(mystring)+1);
- strcpy(tempstring, mystring);
+ sprintf(tempstring, "%s%s%s", mystring, tmp, CRLF);
efree(mystring);
mystring=tempstring;
- sprintf(mystring, "%s%s%s", mystring, tmp, CRLF);
-
} else if (bod) {
-
- tempstring=emalloc(strlen(bod->contents.text.data)+strlen(CRLF)+strlen(mystring)+1);
- strcpy(tempstring, mystring);
+ tempstring = emalloc(strlen(bod->contents.text.data)+strlen(CRLF)+strlen(mystring)+1);
+ sprintf(tempstring, "%s%s%s", mystring, bod->contents.text.data, CRLF);
efree(mystring);
mystring=tempstring;
- sprintf(mystring, "%s%s%s", mystring, bod->contents.text.data, CRLF);
-
} else {
efree(mystring);
RETURN_FALSE;