mirror of
https://github.com/moparisthebest/curl
synced 2024-11-15 14:05:03 -05:00
parent
7f304ab84f
commit
affed6725e
16
lib/smtp.c
16
lib/smtp.c
@ -795,22 +795,32 @@ static CURLcode smtp_mail(struct connectdata *conn)
|
|||||||
/* calculate the FROM parameter */
|
/* calculate the FROM parameter */
|
||||||
if(!data->set.str[STRING_MAIL_FROM])
|
if(!data->set.str[STRING_MAIL_FROM])
|
||||||
/* null reverse-path, RFC-2821, sect. 3.7 */
|
/* null reverse-path, RFC-2821, sect. 3.7 */
|
||||||
from = "<>";
|
from = strdup("<>");
|
||||||
else if(data->set.str[STRING_MAIL_FROM][0] == '<')
|
else if(data->set.str[STRING_MAIL_FROM][0] == '<')
|
||||||
from = aprintf("%s", data->set.str[STRING_MAIL_FROM]);
|
from = aprintf("%s", data->set.str[STRING_MAIL_FROM]);
|
||||||
else
|
else
|
||||||
from = aprintf("<%s>", data->set.str[STRING_MAIL_FROM]);
|
from = aprintf("<%s>", data->set.str[STRING_MAIL_FROM]);
|
||||||
|
|
||||||
|
if(!from)
|
||||||
|
return CURLE_OUT_OF_MEMORY;
|
||||||
|
|
||||||
/* calculate the optional SIZE parameter */
|
/* calculate the optional SIZE parameter */
|
||||||
if(conn->data->set.infilesize > 0)
|
if(conn->data->set.infilesize > 0) {
|
||||||
size = aprintf("%" FORMAT_OFF_T, data->set.infilesize);
|
size = aprintf("%" FORMAT_OFF_T, data->set.infilesize);
|
||||||
|
|
||||||
|
if(!size)
|
||||||
|
return CURLE_OUT_OF_MEMORY;
|
||||||
|
}
|
||||||
|
|
||||||
/* send MAIL FROM */
|
/* send MAIL FROM */
|
||||||
if(size == NULL)
|
if(size == NULL)
|
||||||
result = Curl_pp_sendf(&conn->proto.smtpc.pp, "MAIL FROM:%s", from);
|
result = Curl_pp_sendf(&conn->proto.smtpc.pp, "MAIL FROM:%s", from);
|
||||||
else
|
else
|
||||||
result = Curl_pp_sendf(&conn->proto.smtpc.pp, "MAIL FROM:%s SIZE=%s",
|
result = Curl_pp_sendf(&conn->proto.smtpc.pp, "MAIL FROM:%s SIZE=%s",
|
||||||
from, size);
|
from, size);
|
||||||
|
|
||||||
|
Curl_safefree(size);
|
||||||
|
Curl_safefree(from);
|
||||||
|
|
||||||
if(result)
|
if(result)
|
||||||
return result;
|
return result;
|
||||||
|
Loading…
Reference in New Issue
Block a user