From 0383f7f19dfdb8ad66797a338aa95fe7b3287d83 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Mon, 17 May 2004 07:45:20 +0000 Subject: [PATCH] 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 | 49 ++++++++++++++++++++++++++---------------- 2 files changed, 33 insertions(+), 20 deletions(-) diff --git a/tests/libtest/lib510.c b/tests/libtest/lib510.c index 051a773c53..4dfdbd9626 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 9c8c8e63ed..d52baa6d0d 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; + if(code == CURLE_OK) { - curl = curl_easy_init(); - if(!curl) - return 2; + curl = curl_easy_init(); + if(curl) { - curl_easy_setopt(curl, CURLOPT_VERBOSE, 1); - curl_easy_setopt(curl, CURLOPT_HEADER, 1); + curl_easy_setopt(curl, CURLOPT_VERBOSE, 1); + curl_easy_setopt(curl, CURLOPT_HEADER, 1); - curl2 = curl_easy_duphandle(curl); - if(!curl2) - return 3; + curl2 = curl_easy_duphandle(curl); + if(curl2) { - code = curl_easy_setopt(curl2, CURLOPT_URL, URL); - if(code != CURLE_OK) - return 4; + code = curl_easy_setopt(curl2, CURLOPT_URL, URL); + if(code == CURLE_OK) { - code = curl_easy_perform(curl2); - if(code != CURLE_OK) - return 5; + code = curl_easy_perform(curl2); + if(code == CURLE_OK) + rc = 0; + else + rc = 1; + } + else + rc = 2; - curl_easy_cleanup(curl2); + curl_easy_cleanup(curl2); + } + else + rc = 3; - curl_easy_cleanup(curl); + curl_easy_cleanup(curl); + } + else + rc = 4; + } + else + rc = 5; - return 0; + return rc; }