diff options
author | Jonathan Nieder <jrnieder@gmail.com> | 2013-08-19 00:39:05 -0700 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2013-08-20 11:16:38 +0200 |
commit | 11baffbff67eae225f63fc684d80ce52a79c8ac5 (patch) | |
tree | 8fa150d4573cb660750c237dd3bd8c700a0eb800 | |
parent | 53333a43a1959ddeef27c26f0983be1b81e558bc (diff) |
url: allocate username, password, and options on the heap
This makes it possible to increase the size of the buffers when needed
in later patches. No functional change yet.
-rw-r--r-- | lib/url.c | 17 |
1 files changed, 14 insertions, 3 deletions
@@ -5046,9 +5046,9 @@ static CURLcode create_conn(struct SessionHandle *data, struct connectdata *conn; struct connectdata *conn_temp = NULL; size_t urllen; - char user[MAX_CURL_USER_LENGTH]; - char passwd[MAX_CURL_PASSWORD_LENGTH]; - char options[MAX_CURL_OPTIONS_LENGTH]; + char *user = NULL; + char *passwd = NULL; + char *options = NULL; bool reuse; char *proxy = NULL; bool prot_missing = FALSE; @@ -5124,6 +5124,14 @@ static CURLcode create_conn(struct SessionHandle *data, conn->host.name = conn->host.rawalloc; conn->host.name[0] = 0; + user = malloc(MAX_CURL_USER_LENGTH); + passwd = malloc(MAX_CURL_PASSWORD_LENGTH); + options = malloc(MAX_CURL_OPTIONS_LENGTH); + if(!user || !passwd || !options) { + result = CURLE_OUT_OF_MEMORY; + goto out; + } + result = parseurlandfillconn(data, conn, &prot_missing, user, passwd, options); if(result != CURLE_OK) @@ -5498,6 +5506,9 @@ static CURLcode create_conn(struct SessionHandle *data, out: + Curl_safefree(options); + Curl_safefree(passwd); + Curl_safefree(user); Curl_safefree(proxy); return result; } |