smtp_mail: fix memory leak

... introduced in 7f304ab84f
This commit is contained in:
Daniel Stenberg 2011-09-29 23:45:36 +02:00
parent 7f304ab84f
commit affed6725e
1 changed files with 13 additions and 3 deletions

View File

@ -795,22 +795,32 @@ static CURLcode smtp_mail(struct connectdata *conn)
/* calculate the FROM parameter */
if(!data->set.str[STRING_MAIL_FROM])
/* null reverse-path, RFC-2821, sect. 3.7 */
from = "<>";
from = strdup("<>");
else if(data->set.str[STRING_MAIL_FROM][0] == '<')
from = aprintf("%s", data->set.str[STRING_MAIL_FROM]);
else
from = aprintf("<%s>", data->set.str[STRING_MAIL_FROM]);
if(!from)
return CURLE_OUT_OF_MEMORY;
/* 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);
if(!size)
return CURLE_OUT_OF_MEMORY;
}
/* send MAIL FROM */
if(size == NULL)
result = Curl_pp_sendf(&conn->proto.smtpc.pp, "MAIL FROM:%s", from);
else
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)
return result;