Commit 940af669 authored by Max Kellermann's avatar Max Kellermann

poison: added valgrind support

If the header valgrind/memcheck.h is available, add VALGRIND_MAKE_MEM_NOACCESS() and VALGRIND_MAKE_MEM_UNDEFINED() support, which enables nice warnings in the valgrind memory checker.
parent fd76e29f
......@@ -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
......
......@@ -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
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment