sanitizers: C/C++ source code to trigger Address and Undefined Behaviour Sanitizers

Share:

Recent gcc and clang compiler versions provide functionality to memory violations and other undefined behaviour; this is often referred to as "Address Sanitizer" (or SAN) and "Undefined Behaviour Sanitizer" (UBSAN). The Writing R Extension manual describes this in some detail in Section 4.9. . This feature has to be enabled in the corresponding binary, eg in R, which is somewhat involved as it also required a current compiler toolchain which is not yet widely available, or in the case of Windows, not available at all (via the common Rtools mechanism). . As an alternative, the pre-built Docker containers available via the Docker Hub at https://registry.hub.docker.com/u/eddelbuettel/docker-debian-r/ can be used on Linux, and via boot2docker on Windows and OS X. . This package then provides a means of testing the compiler setup as the known code failures provides in the sample code here should be detected correctly, whereas a default build of R will let the package pass. . The code samples are based on the examples from the Address Sanitizer Wiki at https://code.google.com/p/address-sanitizer/wiki/AddressSanitizer.

Author
Dirk Eddelbuettel
Date of publication
2014-08-03 08:08:08
Maintainer
Dirk Eddelbuettel <edd@debian.org>
License
GPL (>= 2)
Version
0.1.0

View on CRAN

Man pages

sanitizers-package
Example code to trigger SAN and UBSAN reports

Files in this package

sanitizers
sanitizers/inst
sanitizers/inst/testUsage.txt
sanitizers/tests
sanitizers/tests/testStackAddressSanitize.R
sanitizers/tests/testHeapAddressSanitize.R
sanitizers/src
sanitizers/src/stack_address.cpp
sanitizers/src/heap_address.cpp
sanitizers/NAMESPACE
sanitizers/R
sanitizers/R/sanitizer.R
sanitizers/README.md
sanitizers/MD5
sanitizers/DESCRIPTION
sanitizers/ChangeLog
sanitizers/man
sanitizers/man/sanitizers-package.Rd