Commit 6bdeca96 authored by Yang Tse's avatar Yang Tse
Browse files

url.c and transfer.c: nullify connection pointer when free()'ed

parent 3f5e267b
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -1991,12 +1991,17 @@ connect_host(struct SessionHandle *data,
    /* Now, if async is TRUE here, we need to wait for the name
       to resolve */
    res = Curl_resolver_wait_resolv(*conn, NULL);
    if(CURLE_OK == res)
    if(CURLE_OK == res) {
      /* Resolved, continue with the connection */
      res = Curl_async_resolved(*conn, &protocol_done);
    else
      if(res)
        *conn = NULL;
    }
    else {
      /* if we can't resolve, we kill this "connection" now */
      (void)Curl_disconnect(*conn, /* dead_connection */ FALSE);
      *conn = NULL;
    }
  }

  return res;
+3 −1
Original line number Diff line number Diff line
@@ -593,8 +593,10 @@ CURLcode Curl_ch_connc(struct SessionHandle *data,
       NOTE: for conncache_multi cases we must make sure that we only
       close handles not in use.
    */
    for(i=newamount; i< c->num; i++)
    for(i=newamount; i< c->num; i++) {
      Curl_disconnect(c->connects[i], /* dead_connection */ FALSE);
      c->connects[i] = NULL;
    }

    /* If the most recent connection is no longer valid, mark it
       invalid. */