aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Fandrich <dan@coneharvesters.com>2014-07-30 23:18:47 +0200
committerDan Fandrich <dan@coneharvesters.com>2014-07-30 23:37:24 +0200
commit2c1db913f73ff29291969ca7bf6f3bf8e1f34069 (patch)
tree8c4aaa38a0ac8d31666c10ec9df0915c73e50e10
parent01a016880620cf2a3ad5135327a27124d8c168c2 (diff)
smtp: fixed a segfault during test 1320 torture test
Under these circumstances, the connection hasn't been fully established and smtp_connect hasn't been called, yet smtp_done still calls the state machine which dereferences the NULL conn pointer in struct pingpong.
-rw-r--r--lib/smtp.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/smtp.c b/lib/smtp.c
index 5938c3ff4..da7601724 100644
--- a/lib/smtp.c
+++ b/lib/smtp.c
@@ -1642,7 +1642,7 @@ static CURLcode smtp_done(struct connectdata *conn, CURLcode status,
(void)premature;
- if(!smtp)
+ if(!smtp || !pp->conn)
/* When the easy handle is removed from the multi interface while libcurl
is still trying to resolve the host name, the SMTP struct is not yet
initialized. However, the removal action calls Curl_done() which in