curl-library
[PATCH curl 3/7] url: allocate username, password, and options on the heap
From: Jonathan Nieder <jrnieder_at_gmail.com>
Date: Tue, 20 Aug 2013 00:49:44 -0700
Date: Tue, 20 Aug 2013 00:49:44 -0700
This makes it possible to increase the size of the buffers when needed
in later patches. No functional change yet.
--- Unchanged. lib/url.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/lib/url.c b/lib/url.c index 64d5add6..07555a90 100644 --- a/lib/url.c +++ b/lib/url.c @@ -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; } -- 1.8.4.rc4 ------------------------------------------------------------------- List admin: http://cool.haxx.se/list/listinfo/curl-library Etiquette: http://curl.haxx.se/mail/etiquette.htmlReceived on 2013-08-20