]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
smtp: overwriting 'from' leaks memory
authorDaniel Stenberg <daniel@haxx.se>
Fri, 28 Feb 2020 08:49:02 +0000 (09:49 +0100)
committerDaniel Stenberg <daniel@haxx.se>
Fri, 28 Feb 2020 15:52:33 +0000 (16:52 +0100)
Detected by Coverity. CID 1418139.

Also, make sure to return error if the new 'from' allocation fails.

Closes #4997

lib/smtp.c

index 77fcd5afc8e4f7a98f981ed28ff54ed83164e416..e1872871dcfe7b00d01ada8ef5fa9f829849b25e 100644 (file)
@@ -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 */