[Contents] [Index] [Help] [Retrace] [Browse <] [Browse >]

Alone, Mungwall can catch a large variety of memory-related software
problems.  If Mungwall and Enforcer are used together, they can catch
many more well-hidden bugs.  One bug that is hard to catch is when a
program either mistakenly reads memory that does not belong to the
program or reads its own memory without initializing the memory first.

These bugs are normally hard to catch because the behavior of the
errant program usually depends on how it reacts to the data that
happens to be stored in that memory.  This makes the behavior of the
bug erratic.  Sometimes the errant program may crash.  Sometimes the
errant program may write over another program's data, causing the other
program to crash.  At other times, no noticeable abnormality takes
place.

Mungwall and Enforcer together can help find these bugs.  Because
Mungwall fills freed memory with the same odd 32-bit values, when an
errant program mistakenly accesses memory,  the behavior of the bug
will be consistent while Mungwall is running.  Also, the values
Mungwall puts in memory are more likely to cause the errant program to
access Enforcer-protected memory, triggering an Enforcer hit.