From 5b463e97fa5ceaf058a3197ab89e15fcb4dd9160 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Tue, 22 Apr 2014 22:56:59 +0200 Subject: curl_global_init_mem: bump initialized even if already initialized As this makes curl_global_init_mem() behave the same way as curl_global_init() already does in that aspect - the same number of curl_global_cleanup() calls is then required to again decrease the counter and then eventually do the cleanup. Bug: http://curl.haxx.se/bug/view.cgi?id=1362 Reported-by: Tristan --- lib/easy.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/easy.c b/lib/easy.c index c124e25de..82dea904b 100644 --- a/lib/easy.c +++ b/lib/easy.c @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2013, Daniel Stenberg, , et al. + * Copyright (C) 1998 - 2014, Daniel Stenberg, , et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms @@ -299,9 +299,13 @@ CURLcode curl_global_init_mem(long flags, curl_malloc_callback m, if(!m || !f || !r || !s || !c) return CURLE_FAILED_INIT; - /* Already initialized, don't do it again */ - if(initialized) + if(initialized) { + /* Already initialized, don't do it again, but bump the variable anyway to + work like curl_global_init() and require the same amount of cleanup + calls. */ + initialized++; return CURLE_OK; + } /* Call the actual init function first */ code = curl_global_init(flags); -- cgit v1.2.3