From 3a70279b7d6d14a86c113fe94a06f835d1549b16 Mon Sep 17 00:00:00 2001 From: "Frank M. Kromann" Date: Fri, 6 Dec 2002 22:57:47 +0000 Subject: [PATCH] MFH --- ext/imap/php_imap.c | 3 ++- win32/sendmail.c | 29 +++++++++++------------------ win32/sendmail.h | 2 +- 3 files changed, 14 insertions(+), 20 deletions(-) diff --git a/ext/imap/php_imap.c b/ext/imap/php_imap.c index de4bb1e162..4bfcafdad5 100644 --- a/ext/imap/php_imap.c +++ b/ext/imap/php_imap.c @@ -3222,7 +3222,8 @@ int _php_imap_mail(char *to, char *subject, char *message, char *headers, char * } } - strcat(bufferHeader, headers); + if (headers && *headers) + strcat(bufferHeader, headers); if (TSendMail(INI_STR("SMTP"), &tsm_err, &tsm_errmsg, bufferHeader, subject, bufferTo, message, bufferCc, bufferBcc, rpath) != SUCCESS) { if (tsm_errmsg) { diff --git a/win32/sendmail.c b/win32/sendmail.c index d98ce3c768..5a8c7276d3 100644 --- a/win32/sendmail.c +++ b/win32/sendmail.c @@ -536,12 +536,14 @@ int SendText(char *RPath, char *Subject, char *mailTo, char *mailCc, char *mailB which would look like "\r\n\r\n". */ memcpy(stripped_header + (pos1 - headers - 4), pos2 + 2, strlen(pos2) - 2); } - } else { - /* Simplify the code that we create a copy of stripped_header no matter if - we actually strip something or not. So we've a single efree() later. */ - if (NULL == (stripped_header = estrndup(headers, strlen(headers)))) { - return OUT_OF_MEMORY; - } + } + } + + /* Simplify the code that we create a copy of stripped_header no matter if + we actually strip something or not. So we've a single efree() later. */ + if (headers && !stripped_header) { + if (NULL == (stripped_header = estrndup(headers, strlen(headers)))) { + return OUT_OF_MEMORY; } } @@ -555,12 +557,11 @@ int SendText(char *RPath, char *Subject, char *mailTo, char *mailCc, char *mailB return (res); } - /* send message header */ if (Subject == NULL) { - res = PostHeader(RPath, "No Subject", mailTo, stripped_header, NULL); + res = PostHeader(RPath, "No Subject", mailTo, stripped_header); } else { - res = PostHeader(RPath, Subject, mailTo, stripped_header, NULL); + res = PostHeader(RPath, Subject, mailTo, stripped_header); } if (stripped_header) { efree(stripped_header); @@ -569,7 +570,6 @@ int SendText(char *RPath, char *Subject, char *mailTo, char *mailCc, char *mailB return (res); } - /* send message contents in 1024 chunks */ if (strlen(data) <= 1024) { if ((res = Post(data)) != SUCCESS) @@ -620,13 +620,12 @@ int addToHeader(char **header_buffer, const char *specifier, char *string) { // 2) Subject // 3) destination address // 4) headers -// 5) cc destination address // Output: Error code or Success // Description: // Author/Date: jcar 20/9/96 // History: //********************************************************************/ -int PostHeader(char *RPath, char *Subject, char *mailTo, char *xheaders, char *mailCc) +int PostHeader(char *RPath, char *Subject, char *mailTo, char *xheaders) { /* Print message header according to RFC 822 */ @@ -685,12 +684,6 @@ int PostHeader(char *RPath, char *Subject, char *mailTo, char *xheaders, char *m goto PostHeader_outofmem; } } - - if (mailCc && *mailCc) { - if (!addToHeader(&header_buffer, "Cc: %s\r\n", mailCc)) { - goto PostHeader_outofmem; - } - } if(xheaders){ if (!addToHeader(&header_buffer, "%s\r\n", xheaders)) { goto PostHeader_outofmem; diff --git a/win32/sendmail.h b/win32/sendmail.h index 9282cc6cbc..751b9d6b34 100644 --- a/win32/sendmail.h +++ b/win32/sendmail.h @@ -41,7 +41,7 @@ int SendText(char *RPath, char *Subject, char *mailTo, char *mailCc, char *mailB char *GetSMErrorText(int index); int MailConnect(); -int PostHeader(char *, char *, char *, char *, char *); +int PostHeader(char *, char *, char *, char *); int Post(LPCSTR); int Ack(char **server_response); unsigned long GetAddr(LPSTR szHost); -- 2.40.0