diff options
author | Ilia Alshanetsky <iliaa@php.net> | 2004-12-22 17:27:39 +0000 |
---|---|---|
committer | Ilia Alshanetsky <iliaa@php.net> | 2004-12-22 17:27:39 +0000 |
commit | b19e6669467a7faee7024e20794da511de8575e9 (patch) | |
tree | ba38166491186a5ea3898404994b34b93f4210a1 /ext/imap/php_imap.c | |
parent | 287dc7a32b547f690a5e8f26f9ca448497158406 (diff) | |
download | php-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.c | 18 |
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; |