aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2004-05-17 07:45:20 +0000
committerDaniel Stenberg <daniel@haxx.se>2004-05-17 07:45:20 +0000
commit0383f7f19dfdb8ad66797a338aa95fe7b3287d83 (patch)
tree3e142562e13fd1c9ab4956e8c93695a7df3afb47
parent23a43c6e0fdd9c5ff8634e788bc502108fb535aa (diff)
modified to not leak memory if a libcurl function returns failure, for better
memory leak detection
-rw-r--r--tests/libtest/lib510.c4
-rw-r--r--tests/libtest/lib512.c65
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;
}