diff options
author | Daniel Stenberg <daniel@haxx.se> | 2020-02-28 09:49:02 +0100 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2020-02-28 16:52:33 +0100 |
commit | aeb292301acadda60751601c5816d628e6b5e58f (patch) | |
tree | 25fbc4cce1c8e1051a492a6be5bb5b7bf0450cef /lib | |
parent | ea1b2eb9768ee5db73dcd9408c726531e2605655 (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.c | 3 |
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 */ |