mirror of
https://github.com/moparisthebest/curl
synced 2024-12-24 00:58:48 -05:00
unit1307: proper cleanup on OOM to fix torture tests
This commit is contained in:
parent
24753bcd48
commit
c87c71b3fe
@ -30,6 +30,12 @@
|
||||
static struct Curl_easy *easy;
|
||||
struct curl_hash *hostcache;
|
||||
|
||||
static void unit_stop(void)
|
||||
{
|
||||
curl_easy_cleanup(easy);
|
||||
curl_global_cleanup();
|
||||
}
|
||||
|
||||
static CURLcode unit_setup(void)
|
||||
{
|
||||
int res = CURLE_OK;
|
||||
@ -37,22 +43,20 @@ static CURLcode unit_setup(void)
|
||||
global_init(CURL_GLOBAL_ALL);
|
||||
|
||||
easy = curl_easy_init();
|
||||
if(!easy)
|
||||
if(!easy) {
|
||||
curl_global_cleanup();
|
||||
return CURLE_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
hostcache = Curl_global_host_cache_init();
|
||||
if(!hostcache)
|
||||
if(!hostcache) {
|
||||
unit_stop();
|
||||
return CURLE_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
static void unit_stop(void)
|
||||
{
|
||||
curl_easy_cleanup(easy);
|
||||
curl_global_cleanup();
|
||||
}
|
||||
|
||||
struct testcase {
|
||||
/* host:port:address[,address]... */
|
||||
const char *optval;
|
||||
@ -128,11 +132,17 @@ UNITTEST_START
|
||||
easy->dns.hostcachetype = HCACHE_GLOBAL;
|
||||
|
||||
list = curl_slist_append(NULL, tests[i].optval);
|
||||
if(!list)
|
||||
goto unit_test_abort;
|
||||
curl_easy_setopt(easy, CURLOPT_RESOLVE, list);
|
||||
|
||||
Curl_loadhostpairs(easy);
|
||||
|
||||
entry_id = (void *)aprintf("%s:%d", tests[i].host, tests[i].port);
|
||||
if(!entry_id) {
|
||||
curl_slist_free_all(list);
|
||||
goto unit_test_abort;
|
||||
}
|
||||
dns = Curl_hash_pick(easy->dns.hostcache, entry_id, strlen(entry_id) + 1);
|
||||
free(entry_id);
|
||||
entry_id = NULL;
|
||||
|
Loading…
Reference in New Issue
Block a user