D.U.M.A. – Detect Unintended Memory Access / efence

D.U.M.A. – Detect Unintended Memory Access / efence

D.U.M.A. – Detect Unintended Memory Access

DUMA is an open-source library (under GNU General Public License) to detect buffer overruns and under-runs in C and C++ programs.
This library is a fork of Buce Perens Electric Fence library and adds some new features to it. Features of the DUMA library:
“overloads” all standard memory allocation functions like malloc(), calloc(), memalign(), strdup(), operator new, operator new[]
and also their counterpart deallocation functions like free(), operator delete and operator delete[]
utilizes the MMU (memory management unit) of the CPU:
allocates and protects an extra memory page to detect any illegal access beyond the top of the buffer (or bottom, at the user’s option)
stops the program at exactly that instruction, which does the erroneous access to the protected memory page,
allowing location of the defectice source code in a debugger
detects erroneous writes at the non-protected end of the memory block at deallocation of the memory block
detects mismatch of allocation/deallocation functions: f.e. allocation with malloc() but deallocation with operator delete
leak detection: detect memory blocks which were not deallocated until program exit
runs on Linux / U*ix and MS Windows NT/2K/XP operating systems
preloading of the library on Linux (and some U*ix) systems allowing tests without necessity of changing source code or recompilation
Following documents are available (also in the source archives):
Following article was printed in the magazine “Programmieren unter Linux 1/2005 (1)”:
Homepage of project: http://duma.sourceforge.net (this site)
Project page on SourceForge: http://sourceforge.net/projects/duma
.zip and .tar.gz source archives of the latest version
Project page on Freshmeat: http://freshmeat.net/projects/duma/
subscribe on freshmeat to get announcements of new versions

Comments, suggestions and bug-reports go to
Hayati Aygün
Thanks to SourceForge for hosting!


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.