Provided by: freebsd-manpages_6.2-1_all bug


     MemGuard - memory allocator for debugging purposes


     options DEBUG_MEMGUARD


     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 allocations by


     src/sys/kern/kern_malloc.c  File to replace the malloc type in


     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 editor.  Look for
          lines containing “XXX CHANGEME!” and replace M_SUBPROC 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.


     sysctl(8), vmstat(8), contigmalloc(9), malloc(9)


     MemGuard first appeared in FreeBSD 6.0.


     MemGuard was written by Bosko Milekic 〈〉.  This
     manual page was written by Christian Brueffer 〈〉.


     Currently, it is not possible to override UMA zone(9) allocations.