]> granicus.if.org Git - curl/commitdiff
memdebug: log pointer before freeing its data
authorDaniel Stenberg <daniel@haxx.se>
Tue, 12 Mar 2019 07:37:18 +0000 (08:37 +0100)
committerDaniel Stenberg <daniel@haxx.se>
Tue, 12 Mar 2019 20:45:03 +0000 (21:45 +0100)
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

lib/curl_addrinfo.c
lib/memdebug.c

index 961311fa324da40b08a0178805b774f557f91c22..16c4779c1ecdbbc3112190a210760051c155aa3f 100644 (file)
@@ -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) */
 
index 5fcddc4e120213520c22d0e6241c7a4d54daf31d..e3ac8edf74da2fb9ffda2958c7cff1702b09926f 100644 (file)
@@ -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;
 }