duma: Detect Unintended Memory Access (D.U.M.A.) - A Red-Zone memory allocator https://github.com/johnsonjh/duma

Jeffrey H. Johnson d3ffaf8747 Merge pull request #40 from johnsonjh/renovate/codacy-codacy-analysis-cli-action-3.x 2 days ago
.devbots 6f575d9765 Enable devbots, update README 5 months ago
.github abd90fbf01 Update codacy/codacy-analysis-cli-action action to v3.0.1 2 days ago
comparisons fb6fa60184 Format code with black, gofmt, yapf, autopep8, isort, standardrb, standardjs, prettier and rubocop 4 months ago
debian abe29bbb1d Update contact info and documentation. 2 months ago
detours ee999791e0 typo 13 years ago
detoursexample1 697913dbb5 Reformatted all source code files: 8 months ago
docs-data fa6809ec85 Updated docs 14 years ago
dumadetours 697913dbb5 Reformatted all source code files: 8 months ago
dumadetoursdll 697913dbb5 Reformatted all source code files: 8 months ago
dumadll 697913dbb5 Reformatted all source code files: 8 months ago
example_makes c13d3d6f8f don't link with pthreads on windows 13 years ago
kduma 97362f629f Revert "Restyle Format code with black, gofmt, yapf, autopep8, isort, standardrb, standardjs, prettier and rubocop" 4 months ago
prj 697913dbb5 Reformatted all source code files: 8 months ago
stacktrace fb6fa60184 Format code with black, gofmt, yapf, autopep8, isort, standardrb, standardjs, prettier and rubocop 4 months ago
tests 697913dbb5 Reformatted all source code files: 8 months ago
win32-devcpp 7c3b615d91 renamed sem_inc.h to duma_sem.h 13 years ago
win32-msvc 53e3b0b53f Tweaked the .gitignore configuration a bit. 8 months ago
win32-msvc.2005 697913dbb5 Reformatted all source code files: 8 months ago
win32-msvc.net 697913dbb5 Reformatted all source code files: 8 months ago
win32-vide 53e3b0b53f Tweaked the .gitignore configuration a bit. 8 months ago
.deepsource.toml 95f9c00a54 Add .deepsource.toml 4 months ago
.gitattributes f675927921 Add .gitattributes to configure GitHub Linguist. 2 months ago
.gitignore 53e3b0b53f Tweaked the .gitignore configuration a bit. 8 months ago
.gitlab-ci.yml 16b28fa64b Deprecate --ignore-cr-at-eol 4 months ago
.mergify.yml 074829c325 Mergify: configuration update 5 months ago
.whitesource 25a7ebce2a Update .whitesource 4 months ago
CHANGELOG abe29bbb1d Update contact info and documentation. 2 months ago
COPYING-GPL 2c6762a043 no message 18 years ago
COPYING-LGPL cceb1b2d80 Automatic OS detection and additional reformatting. 8 months ago
GNUmakefile 0b2f6fbaff Update GNUmakefile: Remove "a.out" during clean. 2 months ago
INSTALL cceb1b2d80 Automatic OS detection and additional reformatting. 8 months ago
LICENSE cceb1b2d80 Automatic OS detection and additional reformatting. 8 months ago
README.md c5abeb3944 Update README.md: Fix code size badge 2 weeks ago
README.txt 070f9b4486 Added a new README.md, which is rewritten from the README preamble. 8 months ago
SECURITY.md e214a6ecf6 Update copyright, security contact info, docs. 2 months ago
TODO 9bf7366d23 Update some documentation to point to the new repo 4 months ago
WIN32_DETOURS_HOWTO.txt 9bf7366d23 Update some documentation to point to the new repo 4 months ago
builddocs.bat 9bf7366d23 Update some documentation to point to the new repo 4 months ago
createconf.c cceb1b2d80 Automatic OS detection and additional reformatting. 8 months ago
createconf_new.cpp cceb1b2d80 Automatic OS detection and additional reformatting. 8 months ago
duma.3 bd6ef1783d Patch for SourceForge bug ID #2831348: 11 years ago
duma.c cceb1b2d80 Automatic OS detection and additional reformatting. 8 months ago
duma.h 9e7801793a Normalize some code styling with clang-format. 2 months ago
duma.sh 64ff46c7d6 Reformat scripts to appease shellcheck and shfmt 4 months ago
duma_hlp.h 9e7801793a Normalize some code styling with clang-format. 2 months ago
duma_sem.h 9e7801793a Normalize some code styling with clang-format. 2 months ago
dumapp.cpp cceb1b2d80 Automatic OS detection and additional reformatting. 8 months ago
dumapp.h 9e7801793a Normalize some code styling with clang-format. 2 months ago
example1.cpp 697913dbb5 Reformatted all source code files: 8 months ago
example2.cpp 697913dbb5 Reformatted all source code files: 8 months ago
example3.cpp 697913dbb5 Reformatted all source code files: 8 months ago
example4.cpp 697913dbb5 Reformatted all source code files: 8 months ago
example5.cpp 697913dbb5 Reformatted all source code files: 8 months ago
example6.cpp 697913dbb5 Reformatted all source code files: 8 months ago
gdbinit.rc c2da06f06b suggested ~/.gdbinit 13 years ago
make_git_source_version.sh a6a843c040 scripts: Reformat 2 months ago
mkclean.bat c919e9332c *** empty log message *** 16 years ago
noduma.h 9e7801793a Normalize some code styling with clang-format. 2 months ago
paging.h 87559124e1 Removed the Title prefix from several files. 8 months ago
print.c 9e7801793a Normalize some code styling with clang-format. 2 months ago
print.h cceb1b2d80 Automatic OS detection and additional reformatting. 8 months ago
refactoring.sh a6a843c040 scripts: Reformat 2 months ago
renovate.json 06139a1f80 Format code with black, gofmt, yapf, autopep8, isort, standardrb, standardjs, prettier and rubocop 3 months ago
sem_inc.c cceb1b2d80 Automatic OS detection and additional reformatting. 8 months ago

README.md

D.U.M.A.


FOSSAStatus LocCount GitHubCodeSize GitHubRelease LgtmAlerts CodacyBadge CodeBeat DeepScanGrade DeepSource TickgitTODOs


Detect Unintended Memory Access


A Red-Zone memory allocator


Introduction

After deciding it was important to revive D.U.M.A., it quickly became clear continued use of the cvs version control system would be a limiting factor to the success of a new D.U.M.A. distribution. If the project was going to survive in the long-term, it would be necessary to perform a full conversion to a more modern, commonly used, and accessible VCS system.

Unaware of the efforts of the original author, I created this repository independently, and expended much effort to identify all contributors and authors of the many patches and contributions that had been produced by the community over many years. After many false starts, I'm now mostly satisfied with the end result - especially considering that many of my conclusions turned out to be very close (and sometimes identical) to those made in the original author's own conversion efforts. It should be noted that I had no special knowledge of this software, besides being a user, and no relationship or even any previous contact with the author.

The most time consuming part of the conversion process was determining all the non-canonical changes, figuring out who actually wrote them, and finally deciding if these patches should be incorporated into a new official "mainline" repository.

This process required more than a few "educated guesses", and, when the necessary details were not available, simple judgment calls. With such an old, widely distributed, and hacked-upon code-base, which survived as long as it did, without an official maintainer or source for new releases for many years, much of data available is fragmentary and conflicting. Sometimes, the only sources of information are the often fading memories of those originally involved with project. Often, inferences had to be made, usually based on incomplete and inaccurate information.

Because of these uncertainties, I am certain that mistakes have been made and new errors introduced. I welcome any contributions from the public that would help to make the repository more historically accurate as well as improve functionality.


The Future of D.U.M.A.

A large task, not yet complete, is reconciling this reconstruction against the last version which was released by the original author. The intention is to focus on correctly identifying any significant deviations, especially in regardings to the identification of contributors, and ensuring that any disputes that might arise are fairly handled. As new information becomes available, the commit logs for the project will be updated to provide an accurate record for posterity.

The structure of this conversion very closely resembles that of the original cvs repository. In contrast, the orignal author's conversion efforts included a radical refactoring the source tree and directory structures. I believe that this was a prudent decision, and eventually plan to incorporate similar restructuring in this repository.

While every attempt was been made to ensure correctness, especially when acknowledging contributors, extracting information where available from the original SourceForge site, random web forums, other cvs, svn, and, git repositories, and mailing lists archives, this release does incorporate changes that were never part of the original work, mostly to ensure compatability with modern systems operating systems and environments.


Official D.U.M.A.?

This repository should be considered the "official" source for D.U.M.A. releases.

Hayati Ayguen, the original author, is no longer actively maintaining D.U.M.A. and has moved on to other projects. While he was happy to correspond about the project, it seems unlikely that he will take on the role of primary maintainer of the package.


History

D.U.M.A. started out as a fork of Bruce Perens' venerable "Electric Fence", a tool created at Pixar, back in 1987.

D.U.M.A. was ported to Linux as early as 1992.


Conclusion

Now, almost 30 years later, we thank to Hayati Ayguen and all other contributors, who put time and effort into this project, but allow them move on to other endeavours. They can do so knowing that D.U.M.A. is not gone or forgotten. Even though it is a mature software and package, it will be properly maintained and updated as needed.


Addendum

For some additional information on the history of D.U.M.A. and Electric Fence, see https://perens.com/2017/04/04/my-30th-anniversary-in-open-source/, for short blog entry by Bruce Perens' mentioning the creation of his Electric Fence tool.

The orginal author, Hayati Ayguen, remains an active developer.


Availability

Source Code (Releases)
Source Code (Development Repositories)

Issue Tracking


Security Policy


License