From: Daniel Stenberg Date: Tue, 12 Mar 2019 07:37:18 +0000 (+0100) Subject: memdebug: log pointer before freeing its data X-Git-Tag: curl-7_64_1~29 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=401cb929543e3370726574c01fd90d965c5b3c60;p=thirdparty%2Fcurl.git memdebug: log pointer before freeing its data Coverity warned for two potentional "Use after free" cases. Both are false positives because the memory wasn't used, it was only the actual pointer value that was logged. The fix still changes the order of execution to avoid the warnings. Coverity CID 1443033 and 1443034 Closes #3671 --- diff --git a/lib/curl_addrinfo.c b/lib/curl_addrinfo.c index 961311fa32..16c4779c1e 100644 --- a/lib/curl_addrinfo.c +++ b/lib/curl_addrinfo.c @@ -550,13 +550,13 @@ void curl_dbg_freeaddrinfo(struct addrinfo *freethis, int line, const char *source) { + curl_dbg_log("ADDR %s:%d freeaddrinfo(%p)\n", + source, line, (void *)freethis); #ifdef USE_LWIPSOCK lwip_freeaddrinfo(freethis); #else (freeaddrinfo)(freethis); #endif - curl_dbg_log("ADDR %s:%d freeaddrinfo(%p)\n", - source, line, (void *)freethis); } #endif /* defined(CURLDEBUG) && defined(HAVE_FREEADDRINFO) */ diff --git a/lib/memdebug.c b/lib/memdebug.c index 5fcddc4e12..e3ac8edf74 100644 --- a/lib/memdebug.c +++ b/lib/memdebug.c @@ -463,11 +463,11 @@ int curl_dbg_fclose(FILE *file, int line, const char *source) DEBUGASSERT(file != NULL); - res = fclose(file); - if(source) curl_dbg_log("FILE %s:%d fclose(%p)\n", - source, line, (void *)file); + source, line, (void *)file); + + res = fclose(file); return res; }