[tor-commits] [tor/master] Apply the MALLOC_ZERO_WORKS fixup to tor_realloc as well.

nickm at torproject.org nickm at torproject.org
Tue Sep 2 19:42:08 UTC 2014


commit 57c48bf7342d8df9bd3fbd8d52d6bf570b2ecac2
Author: Nick Mathewson <nickm at torproject.org>
Date:   Tue Sep 2 12:53:11 2014 -0400

    Apply the MALLOC_ZERO_WORKS fixup to tor_realloc as well.
    
    Also, make MALLOC_ZERO_WORKS never get applied when clang analyzer is
    running.  This should make the clangalyzer a little happier.
---
 src/common/util.c |   11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/common/util.c b/src/common/util.c
index 16ff8e3..3f298cd 100644
--- a/src/common/util.c
+++ b/src/common/util.c
@@ -96,6 +96,10 @@
 #include <sys/wait.h>
 #endif
 
+#ifdef __clang_analyzer__
+#undef MALLOC_ZERO_WORKS
+#endif
+
 /* =====
  * Assertion helper.
  * ===== */
@@ -231,6 +235,13 @@ tor_realloc_(void *ptr, size_t size DMALLOC_PARAMS)
 
   tor_assert(size < SIZE_T_CEILING);
 
+#ifndef MALLOC_ZERO_WORKS
+  /* Some libc mallocs don't work when size==0. Override them. */
+  if (size==0) {
+    size=1;
+  }
+#endif
+
 #ifdef USE_DMALLOC
   result = dmalloc_realloc(file, line, ptr, size, DMALLOC_FUNC_REALLOC, 0);
 #else





More information about the tor-commits mailing list