diff options
author | Sven Wegener <sven.wegener@stealer.net> | 2015-08-21 08:24:49 +0200 |
---|---|---|
committer | Sven Wegener <sven.wegener@stealer.net> | 2015-08-21 08:24:49 +0200 |
commit | 72fa42ab514c7ae57ba99038e476a7f119d1ac98 (patch) | |
tree | 66c7b05cf3043b0cd06c3151da1cc16babd12c8c | |
parent | b3c7f5159aef1981140612bce6371f8cb6e3f594 (diff) |
http: escape ftp password when using proxyftp-passwords-over-http-proxy
Signed-off-by: Sven Wegener <sven.wegener@stealer.net>
-rw-r--r-- | lib/http.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/lib/http.c b/lib/http.c index d7b56c30b..efd8df342 100644 --- a/lib/http.c +++ b/lib/http.c @@ -2257,10 +2257,18 @@ CURLcode Curl_http(struct connectdata *conn, bool *done) return result; /* url */ - if(paste_ftp_userpwd) - result = Curl_add_bufferf(req_buffer, "ftp://%s:%s@%s", - conn->user, conn->passwd, - ppath + sizeof("ftp://") - 1); + if(paste_ftp_userpwd) { + char *user = curl_easy_escape(conn, conn->user, 0); + char *passwd = curl_easy_escape(conn, conn->passwd, 0); + if(user && passwd) + result = Curl_add_bufferf(req_buffer, "ftp://%s:%s@%s", + user, passwd, + ppath + sizeof("ftp://") - 1); + else + result = CURLE_OUT_OF_MEMORY; + free(user); + free(passwd); + } else result = Curl_add_buffer(req_buffer, ppath, strlen(ppath)); if(result) |