mirror of
https://github.com/moparisthebest/curl
synced 2024-12-22 08:08:50 -05:00
fix out of memory handling issue
This commit is contained in:
parent
c518c52aba
commit
0e05a6329a
@ -397,7 +397,10 @@ CURLcode curl_easy_perform(CURL *easy)
|
||||
mcode = curl_multi_add_handle(multi, easy);
|
||||
if(mcode) {
|
||||
curl_multi_cleanup(multi);
|
||||
return CURLE_FAILED_INIT;
|
||||
if(mcode == CURLM_OUT_OF_MEMORY)
|
||||
return CURLE_OUT_OF_MEMORY;
|
||||
else
|
||||
return CURLE_FAILED_INIT;
|
||||
}
|
||||
|
||||
/* we start some action by calling perform right away */
|
||||
|
10
lib/url.c
10
lib/url.c
@ -501,6 +501,9 @@ CURLcode Curl_open(struct SessionHandle **curl)
|
||||
{
|
||||
CURLcode res = CURLE_OK;
|
||||
struct SessionHandle *data;
|
||||
#ifdef USE_ARES
|
||||
int status;
|
||||
#endif
|
||||
|
||||
/* Very simple start-up: alloc the struct, init it with zeroes and return */
|
||||
data = (struct SessionHandle *)calloc(1, sizeof(struct SessionHandle));
|
||||
@ -513,10 +516,13 @@ CURLcode Curl_open(struct SessionHandle **curl)
|
||||
data->magic = CURLEASY_MAGIC_NUMBER;
|
||||
|
||||
#ifdef USE_ARES
|
||||
if(ARES_SUCCESS != ares_init(&data->state.areschannel)) {
|
||||
if ((status = ares_init(&data->state.areschannel)) != ARES_SUCCESS) {
|
||||
DEBUGF(fprintf(stderr, "Error: ares_init failed\n"));
|
||||
free(data);
|
||||
return CURLE_FAILED_INIT;
|
||||
if (status == ARES_ENOMEM)
|
||||
return CURLE_OUT_OF_MEMORY;
|
||||
else
|
||||
return CURLE_FAILED_INIT;
|
||||
}
|
||||
/* make sure that all other returns from this function should destroy the
|
||||
ares channel before returning error! */
|
||||
|
Loading…
Reference in New Issue
Block a user