RSS Feed for This PostCurrent Article

C/C++ Library to Detect Buffer Overruns and Underruns

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

Trackback URL

Sorry, comments for this entry are closed at this time.