memguard(9)
NAME
MemGuard - memory allocator for debugging purposes
SYNOPSIS
options DEBUG_MEMGUARD
DESCRIPTION
- MemGuard is a simple and small replacement memory allocator
- designed to
help detect tamper-after-free scenarios. These problems are - more and
more common and likely with multithreaded kernels where race - conditions
are more prevalent. - Currently, MemGuard can only take over malloc(), realloc()
- and free() for
a particular malloc type. MemGuard takes over M_SUBPROC al - locations by
default.
FILES
- src/sys/kern/kern_malloc.c File to replace the malloc
- type in
EXAMPLES
The following steps are necessary to use MemGuard:
1. Put the DEBUG_MEMGUARD option into your kernel config.
- 2. Open src/sys/kern/kern_malloc.c in your favourite edi
- tor. Look for
lines containing ``XXX CHANGEME!'' and replace M_SUB - PROC with the
appropriate malloc type. This might require additional - but
small/simple code modifications (e.g., if the malloc - type is
declared out of scope). - 3. Build and install your kernel. Tune the
- vm.memguard_divisor boot
time tunable, which is used to scale how much of - kmem_map you want
to allot for MemGuard. The default is 10, so - kmem_size/10 bytes
will be used. The kmem_size value can be obtained via - the
vm.kmem_size sysctl(8) variable.
SEE ALSO
sysctl(8), vmstat(8), contigmalloc(9), malloc(9)
HISTORY
MemGuard first appeared in FreeBSD 6.0.
AUTHORS
- MemGuard was written by Bosko Milekic <bmilekic@FreeB
- SD.org>. This manual page was written by Christian Brueffer <brueffer@FreeB
- SD.org>.
BUGS
- Currently, it is not possible to override UMA zone(9) allo
- cations.
- BSD February 22, 2005