From: Ilia Alshanetsky Date: Wed, 22 Dec 2004 17:29:14 +0000 (+0000) Subject: MFH: Fixed bug #31142 (imap_mail_compose() fails to generate correct output). X-Git-Tag: php-4.3.11RC1~234 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=26420231c8ab13f073b3760918054ab05fed0f0c;p=php MFH: Fixed bug #31142 (imap_mail_compose() fails to generate correct output). --- diff --git a/NEWS b/NEWS index 8d955bc1af..c804ac8c41 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,7 @@ PHP 4 NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? ??? ????, Version 4.3.11 - Fixed bug #31174 (compile warning in url.c). (Ilia, lukem at NetBSD dot org) +- Fixed bug #31142 (imap_mail_compose() fails to generate correct output). (Ilia) - Fixed bug #31120 (mssql_query returns false on successfull inserts and stored procedures). (Frank) - Fixed bug #31111 (Linux/Sparc: Compile failure of zend_strtod.c). (Derick) diff --git a/ext/imap/php_imap.c b/ext/imap/php_imap.c index aa4c9ba5d6..d34a3acc35 100644 --- a/ext/imap/php_imap.c +++ b/ext/imap/php_imap.c @@ -3140,29 +3140,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;