MemGuard
- memory allocator for debugging purposes
SYNOPSIS
options DEBUG_MEMGUARD
DESCRIPTION
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,
can only take over
malloc (,);
realloc ();
and
free ();
for a particular malloc type.
EXAMPLES
To use
for memory type compiled into the kernel, one has to add the
following line to the
/boot/loader.conf
vm.memguard.desc=<memory_type>
Where
memory_type
is a short description of memory type to monitor.
The short description of memory type is the second argument to
MALLOC_DEFINE9,
so one has to find it in the kernel source.
To use
for memory type defined in a kernel module, one has to set
vm.memguard.descsysctl(8)
variable before loading the module:
sysctl vm.memguard.desc=<memory_type>
The
vm.memguard.divisor
boot-time tunable is used to scale how much of
kmem_map
one wants to allocate for
.
The default is 10, so
kmem_size /10
bytes will be used.
The
kmem_size
value can be obtained via the
vm.kmem_sizesysctl(8)
variable.