Commit 11baffbf authored by Jonathan Nieder's avatar Jonathan Nieder Committed by Daniel Stenberg
Browse files

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.
parent 53333a43
Loading
Loading
Loading
Loading
+14 −3
Original line number Diff line number Diff line
@@ -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;
}