mirror of
https://github.com/moparisthebest/curl
synced 2024-12-22 08:08:50 -05:00
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.
This commit is contained in:
parent
53333a43a1
commit
11baffbff6
17
lib/url.c
17
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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user