From the ConfD UG (that has been quoted many times before):
When debugging application memory leaks with a tool like valgrind, it is often necessary to rebuild libconfd from source, since the default build uses a “pool allocator” that makes the stack trace information for memory leaks from valgrind completely misleading for allocations from libconfd. The details of how to do a build that disables the pool allocator are described in the “Application debugging” section of the README in the libconfd source package
…and from the “libconfd source package” README:
When debugging application memory leaks with a tool like ‘valgrind’, and
the stack trace information from ‘valgrind’ indicates that memory
allocated by libconfd has not been freed, it is necessary to rebuild
libconfd from source, since the default build uses a “pool allocator”
that makes the stack trace information for libconfd completely
misleading.To build a version of libconfd that disables the pool allocator, the
environment variable $NO_FIX_ALLOC must be set to “yes” before building
from a freshly unpacked tar archive - running ‘make clean’ after an
earlier build is not sufficient. I.e. proceed as follows:
- Unpack the tar archive.
- Do ‘export NO_FIX_ALLOC=yes’ in the shell.
- Build as described above.
Note that the libconfd performance may be degraded when the pool
allocator is disabled - i.e. such a build should only be used for
debugging.