aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2020-02-28 09:49:02 +0100
committerDaniel Stenberg <daniel@haxx.se>2020-02-28 16:52:33 +0100
commitaeb292301acadda60751601c5816d628e6b5e58f (patch)
tree25fbc4cce1c8e1051a492a6be5bb5b7bf0450cef /lib
parentea1b2eb9768ee5db73dcd9408c726531e2605655 (diff)
smtp: overwriting 'from' leaks memory
Detected by Coverity. CID 1418139. Also, make sure to return error if the new 'from' allocation fails. Closes #4997
Diffstat (limited to 'lib')
-rw-r--r--lib/smtp.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/smtp.c b/lib/smtp.c
index 77fcd5afc..e1872871d 100644
--- a/lib/smtp.c
+++ b/lib/smtp.c
@@ -625,6 +625,7 @@ static CURLcode smtp_perform_mail(struct connectdata *conn)
utf8 = TRUE;
if(host.name) {
+ free(from);
from = aprintf("<%s@%s>", address, host.name);
Curl_free_idnconverted_hostname(&host);
@@ -635,6 +636,8 @@ static CURLcode smtp_perform_mail(struct connectdata *conn)
auth = aprintf("<%s>", address);
free(address);
+ if(!from)
+ return CURLE_OUT_OF_MEMORY;
}
else
/* Empty AUTH, RFC-2554, sect. 5 */