This is a README FILE for SoftBoundCETS pointer-based checking. For more technical details and algorithms, visit SoftBoundCETS website at http://www.cs.rutgers.edu/~santosh.nagarakatte/softbound/
Download the github repository from https://github.com/santoshn/softboundcets-3.8.0.git
Build SoftBoundCETS for LLVM+CLANG 3.8.0
Go to directory
mkdir build; cd build
Configure and build LLVM, clang and softboundcets with the following commands
cmake ..
make -j8
Set up your environment to use SoftBoundCETS
For example in bash, it would be
export PATH=<git_repo>/llvm-38/build/bin:$PATH
Compile the SoftBoundCETS runtime library
cd <git_repo>
cd runtime
make
Test whether it all worked
Compile
cd <git_repo>
cd test
clang -fsoftboundcets test.c -o test -L<git_repo>/runtime -lm -lrt -lsoftboundcets_rt
Run the test program
./test
Enter 10; the program executes successfully.
Enter 105; a memory safety violation is triggered.