diff options
-rw-r--r-- | configure.ac | 1 | ||||
-rw-r--r-- | src/poison.h | 14 |
2 files changed, 15 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac index ac5819f31..1358b0633 100644 --- a/configure.ac +++ b/configure.ac @@ -101,6 +101,7 @@ AC_CHECK_LIB(nsl,gethostbyname,MPD_LIBS="$MPD_LIBS -lnsl",) AC_CHECK_LIB(m,exp,MPD_LIBS="$MPD_LIBS -lm",) AC_CHECK_HEADERS(locale.h) +AC_CHECK_HEADERS(valgrind/memcheck.h) dnl diff --git a/src/poison.h b/src/poison.h index d37ff233e..fa924a31b 100644 --- a/src/poison.h +++ b/src/poison.h @@ -20,6 +20,12 @@ #define MPD_POISON_H #ifndef NDEBUG +#include "config.h" + +#ifdef HAVE_VALGRIND_MEMCHECK_H +#include <valgrind/memcheck.h> +#endif + #include <string.h> #endif @@ -37,6 +43,10 @@ poison_noaccess(void *p, size_t length) (void)length; #else memset(p, 0x01, length); + +#ifdef HAVE_VALGRIND_MEMCHECK_H + VALGRIND_MAKE_MEM_NOACCESS(p, length); +#endif #endif } @@ -54,6 +64,10 @@ poison_undefined(void *p, size_t length) (void)length; #else memset(p, 0x02, length); + +#ifdef HAVE_VALGRIND_MEMCHECK_H + VALGRIND_MAKE_MEM_UNDEFINED(p, length); +#endif #endif } |