From: Daniel Stenberg Date: Thu, 29 Sep 2011 21:45:36 +0000 (+0200) Subject: smtp_mail: fix memory leak X-Git-Tag: upstream/7.37.1~3634 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=affed6725ee58aa4dadb227d8033cc3a1dffa7e1;p=platform%2Fupstream%2Fcurl.git smtp_mail: fix memory leak ... introduced in 7f304ab84f560c --- diff --git a/lib/smtp.c b/lib/smtp.c index 68b05f2..dbfc589 100644 --- a/lib/smtp.c +++ b/lib/smtp.c @@ -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;