Commit c321b9f7 authored by Dan Fandrich's avatar Dan Fandrich
Browse files

Fixes some more out of memory handling bugs.

parent 7e74349b
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -173,11 +173,13 @@ size_t Curl_base64_encode(struct SessionHandle *data,
  if(data) {
    convbuf = (char*)malloc(insize);
    if(!convbuf) {
      free(output);
      return 0;
    }
    memcpy(convbuf, indata, insize);
    if(CURLE_OK != Curl_convert_to_network(data, convbuf, insize)) {
      free(convbuf);
      free(output);
      return 0;
    }
    indata = convbuf; /* switch to the converted buffer */
+1 −1
Original line number Diff line number Diff line
@@ -295,7 +295,7 @@ CURLcode Curl_output_negotiate(struct connectdata *conn)
                           neg_ctx->output_token.length,
                           &encoded);

  if (len < 0)
  if (len == 0)
    return CURLE_OUT_OF_MEMORY;

  conn->allocptr.userpwd =
+4 −0
Original line number Diff line number Diff line
@@ -421,6 +421,10 @@ static void mk_nt_hash(struct SessionHandle *data,
{
  size_t len = strlen(password);
  unsigned char *pw = malloc(len*2);
  if (!pw)
    /* No way to report this error; just rely on future malloc failures
       to be caught */
    return;

  utf8_to_unicode_le(pw, password, len);

+2 −0
Original line number Diff line number Diff line
@@ -2856,6 +2856,8 @@ static CURLcode CreateConnection(struct SessionHandle *data,
  /* Initialize the pipeline lists */
  conn->send_pipe = Curl_llist_alloc((curl_llist_dtor) llist_dtor);
  conn->recv_pipe = Curl_llist_alloc((curl_llist_dtor) llist_dtor);
  if (!conn->send_pipe || !conn->recv_pipe)
    return CURLE_OUT_OF_MEMORY;

  /* Store creation time to help future close decision making */
  conn->created = Curl_tvnow();