Commit 0383f7f1 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

modified to not leak memory if a libcurl function returns failure, for better

memory leak detection
parent 23a43c6e
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -72,9 +72,11 @@ int test(char *URL)
    /* always cleanup */
    curl_easy_cleanup(curl);

  }

  if(slist)
    /* clean up the headers list */
    curl_slist_free_all(slist);

  }
  return res;
}
+38 −27
Original line number Diff line number Diff line
@@ -8,34 +8,45 @@ int test(char *URL)
  CURLcode code;
  CURL *curl;
  CURL *curl2;
  int rc = 99;

  code = curl_global_init(CURL_GLOBAL_ALL);
  if(code != CURLE_OK)
    return 1;
  if(code == CURLE_OK) {

    curl = curl_easy_init();
  if(!curl)
    return 2;
    if(curl) {

      curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);
      curl_easy_setopt(curl, CURLOPT_HEADER, 1);

      curl2 = curl_easy_duphandle(curl);
  if(!curl2)
    return 3;
      if(curl2) {

        code = curl_easy_setopt(curl2, CURLOPT_URL, URL);
  if(code != CURLE_OK)
    return 4;
        if(code == CURLE_OK) {

          code = curl_easy_perform(curl2);
  if(code != CURLE_OK)
    return 5;
          if(code == CURLE_OK)
            rc = 0;
          else
            rc = 1;
        }
        else
          rc = 2;

        curl_easy_cleanup(curl2);
      }
      else
        rc = 3;

      curl_easy_cleanup(curl);
    }
    else
      rc = 4;
  }
  else
    rc = 5;

  return 0;
  return rc;
}