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;
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)
out:
+ Curl_safefree(options);
+ Curl_safefree(passwd);
+ Curl_safefree(user);
Curl_safefree(proxy);
return result;
}