From 0383f7f19dfdb8ad66797a338aa95fe7b3287d83 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Mon, 17 May 2004 07:45:20 +0000 Subject: modified to not leak memory if a libcurl function returns failure, for better memory leak detection --- tests/libtest/lib510.c | 4 +++- tests/libtest/lib512.c | 65 +++++++++++++++++++++++++++++--------------------- 2 files changed, 41 insertions(+), 28 deletions(-) diff --git a/tests/libtest/lib510.c b/tests/libtest/lib510.c index 051a773c5..4dfdbd962 100644 --- a/tests/libtest/lib510.c +++ b/tests/libtest/lib510.c @@ -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; } diff --git a/tests/libtest/lib512.c b/tests/libtest/lib512.c index 9c8c8e63e..d52baa6d0 100644 --- a/tests/libtest/lib512.c +++ b/tests/libtest/lib512.c @@ -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; - - curl = curl_easy_init(); - if(!curl) - return 2; - - curl_easy_setopt(curl, CURLOPT_VERBOSE, 1); - curl_easy_setopt(curl, CURLOPT_HEADER, 1); - - curl2 = curl_easy_duphandle(curl); - if(!curl2) - return 3; - - code = curl_easy_setopt(curl2, CURLOPT_URL, URL); - if(code != CURLE_OK) - return 4; - - code = curl_easy_perform(curl2); - if(code != CURLE_OK) - return 5; - - curl_easy_cleanup(curl2); - - curl_easy_cleanup(curl); - - return 0; + if(code == CURLE_OK) { + + curl = curl_easy_init(); + if(curl) { + + curl_easy_setopt(curl, CURLOPT_VERBOSE, 1); + curl_easy_setopt(curl, CURLOPT_HEADER, 1); + + curl2 = curl_easy_duphandle(curl); + if(curl2) { + + code = curl_easy_setopt(curl2, CURLOPT_URL, URL); + if(code == CURLE_OK) { + + code = curl_easy_perform(curl2); + 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 rc; } -- cgit v1.2.3