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 /lib | |
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.
Diffstat (limited to 'lib')
-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; } |