commit 57c48bf7342d8df9bd3fbd8d52d6bf570b2ecac2 Author: Nick Mathewson nickm@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