curl_global_init_mem: set function pointers before doing init

... as in the polarssl TLS backend for example it uses memory functions.
This commit is contained in:
Daniel Stenberg 2015-10-09 16:04:11 +02:00
parent 048f84637f
commit 6f8ecea059

View File

@ -292,8 +292,6 @@ CURLcode curl_global_init_mem(long flags, curl_malloc_callback m,
curl_free_callback f, curl_realloc_callback r, curl_free_callback f, curl_realloc_callback r,
curl_strdup_callback s, curl_calloc_callback c) curl_strdup_callback s, curl_calloc_callback c)
{ {
CURLcode result = CURLE_OK;
/* Invalid input, return immediately */ /* Invalid input, return immediately */
if(!m || !f || !r || !s || !c) if(!m || !f || !r || !s || !c)
return CURLE_FAILED_INIT; return CURLE_FAILED_INIT;
@ -306,17 +304,16 @@ CURLcode curl_global_init_mem(long flags, curl_malloc_callback m,
return CURLE_OK; return CURLE_OK;
} }
/* Call the actual init function first */ /* set memory functions before global_init() in case it wants memory
result = curl_global_init(flags); functions */
if(!result) { Curl_cmalloc = m;
Curl_cmalloc = m; Curl_cfree = f;
Curl_cfree = f; Curl_cstrdup = s;
Curl_cstrdup = s; Curl_crealloc = r;
Curl_crealloc = r; Curl_ccalloc = c;
Curl_ccalloc = c;
}
return result; /* Call the actual init function */
return curl_global_init(flags);
} }
/** /**