aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYang Tse <yangsita@gmail.com>2012-01-20 00:11:15 +0100
committerYang Tse <yangsita@gmail.com>2012-01-20 00:11:15 +0100
commitd7af7de5b2d9aee7e41fc45d502c082918abd4bd (patch)
treebe96d6976a64644ed86ff9ab293abba52bd45375
parenta7e8f4aabcb7f5b46e0dd94a9645c5cd2744f9da (diff)
telnet.c: fix OOM triggered segfault
-rw-r--r--lib/telnet.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/telnet.c b/lib/telnet.c
index e7cb295d8..0be795435 100644
--- a/lib/telnet.c
+++ b/lib/telnet.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -1273,11 +1273,13 @@ static CURLcode telnet_done(struct connectdata *conn,
(void)status; /* unused */
(void)premature; /* not used */
+ if(!tn)
+ return CURLE_OK;
+
curl_slist_free_all(tn->telnet_vars);
tn->telnet_vars = NULL;
- free(conn->data->state.proto.telnet);
- conn->data->state.proto.telnet = NULL;
+ Curl_safefree(conn->data->state.proto.telnet);
return CURLE_OK;
}