aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2007-11-30 19:02:56 +0000
committerRoger Dingledine <arma@torproject.org>2007-11-30 19:02:56 +0000
commitfa2c3a73e4dbbe69c311d6a2ded4e5cc0d6be665 (patch)
treeb6e1ab88c34d592ccf755356007b188f6e33e758
parentad0fcef5763ba9e581938b10ec04910fd248824a (diff)
downloadtor-fa2c3a73e4dbbe69c311d6a2ded4e5cc0d6be665.tar
tor-fa2c3a73e4dbbe69c311d6a2ded4e5cc0d6be665.tar.gz
make dmalloc 5.4.2 work again too
svn:r12615
-rw-r--r--configure.in1
-rw-r--r--src/common/util.c13
2 files changed, 12 insertions, 2 deletions
diff --git a/configure.in b/configure.in
index a5aeb4743..88bac1892 100644
--- a/configure.in
+++ b/configure.in
@@ -500,6 +500,7 @@ if [[ $dmalloc -eq 1 ]]; then
AC_SEARCH_LIBS(dmalloc_malloc, [dmallocth dmalloc], , AC_MSG_ERROR(Libdmalloc library not found. If you enable it you better have it installed.))
AC_DEFINE(USE_DMALLOC, 1, [Debug memory allocation library])
AC_DEFINE(DMALLOC_FUNC_CHECK, 1, [Enable dmalloc's malloc function check])
+ AC_CHECK_FUNCS(dmalloc_strdup dmalloc_strndup)
fi
# Allow user to specify an alternate syslog facility
diff --git a/src/common/util.c b/src/common/util.c
index 03670c503..ffbd0e6c0 100644
--- a/src/common/util.c
+++ b/src/common/util.c
@@ -79,8 +79,17 @@ const char util_c_id[] = "$Id$";
#undef strndup
#include <dmalloc.h>
#define DMALLOC_FN_ARGS , file, line
- #define dmalloc_strdup(file, line, string, xalloc_b) dmalloc_strndup(file, line, (string), -1, xalloc_b)
-#else
+
+ #if defined(HAVE_DMALLOC_STRDUP)
+ /* the dmalloc_strdup should be fine as defined */
+ #elif defined(HAVE_DMALLOC_STRNDUP)
+ #define dmalloc_strdup(file, line, string, xalloc_b) \
+ dmalloc_strndup(file, line, (string), -1, xalloc_b)
+ #else
+ #error "No dmalloc_strdup or equivalent"
+ #endif
+
+#else /* not using dmalloc */
#define dmalloc_strdup(file, line, string, xalloc_b) strdup(string)
#define dmalloc_malloc(file, line, size, func_id, alignment, xalloc_b) \