smtp_mail: fix memory leak
... introduced in 7f304ab84f560c
This commit is contained in:
parent
7f304ab84f
commit
affed6725e
14
lib/smtp.c
14
lib/smtp.c
@ -795,16 +795,23 @@ 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);
|
||||
@ -812,6 +819,9 @@ static CURLcode smtp_mail(struct connectdata *conn)
|
||||
result = Curl_pp_sendf(&conn->proto.smtpc.pp, "MAIL FROM:%s SIZE=%s",
|
||||
from, size);
|
||||
|
||||
Curl_safefree(size);
|
||||
Curl_safefree(from);
|
||||
|
||||
if(result)
|
||||
return result;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user