From cce81a7f4508fb7b80d20432341bc265f145f26c Mon Sep 17 00:00:00 2001 From: Dan Fandrich Date: Thu, 25 Feb 2010 08:07:06 +0000 Subject: [PATCH] Fixed a couple of out of memory leaks and a segfault in the SMTP code. --- CHANGES | 3 +++ lib/smtp.c | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index d6013b782c..ae09307070 100644 --- a/CHANGES +++ b/CHANGES @@ -6,6 +6,9 @@ Changelog +Daniel Fandrich (25 Feb 2010) +- Fixed a couple of out of memory leaks and a segfault in the SMTP code. + Yang Tse (25 Feb 2010) - I fixed bug report #2958074 indicating (http://curl.haxx.se/bug/view.cgi?id=2958074) that curl on Windows with diff --git a/lib/smtp.c b/lib/smtp.c index d14c44be40..2587934cf8 100644 --- a/lib/smtp.c +++ b/lib/smtp.c @@ -724,6 +724,8 @@ static CURLcode smtp_connect(struct connectdata *conn, /* url decode the path and use it as domain with EHLO */ smtpc->domain = curl_easy_unescape(conn->data, path, 0, &len); + if (!smtpc->domain) + return CURLE_OUT_OF_MEMORY; /* When we connect, we start in the state where we await the server greeting */ @@ -917,7 +919,8 @@ static CURLcode smtp_disconnect(struct connectdata *conn) /* The SMTP session may or may not have been allocated/setup at this point! */ - (void)smtp_quit(conn); /* ignore errors on the LOGOUT */ + if (smtpc->pp.conn) + (void)smtp_quit(conn); /* ignore errors on the LOGOUT */ Curl_pp_disconnect(&smtpc->pp);