Commit ddeab482 authored by Yang Tse's avatar Yang Tse
Browse files

multi.c: OOM handling fix

Fix curl_multi_cleanup() segfault when using weird cleanup sequence.
parent b0d42da2
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -1775,10 +1775,6 @@ CURLMcode curl_multi_cleanup(CURLM *multi_handle)

  if(GOOD_MULTI_HANDLE(multi)) {
    multi->type = 0; /* not good anymore */
    Curl_hash_destroy(multi->hostcache);
    Curl_hash_destroy(multi->sockhash);
    multi->hostcache = NULL;
    multi->sockhash = NULL;

    /* go over all connections that have close actions */
    for(i=0; i< multi->connc->num; i++) {
@@ -1802,6 +1798,12 @@ CURLMcode curl_multi_cleanup(CURLM *multi_handle)
      cl= n;
    }

    Curl_hash_destroy(multi->hostcache);
    multi->hostcache = NULL;

    Curl_hash_destroy(multi->sockhash);
    multi->sockhash = NULL;

    Curl_rm_connc(multi->connc);
    multi->connc = NULL;