about summary refs log tree commit diff homepage
diff options
context:
space:
mode:
authorDan Liew <daniel.liew@imperial.ac.uk>2015-12-16 18:38:27 +0000
committerDan Liew <daniel.liew@imperial.ac.uk>2015-12-17 09:47:48 +0000
commitb2e64702cc1ebb1ffe01a32ebde0f179bf09c337 (patch)
treef9efe4c3529ab506817b4a34008a0e16081fc18e
parentff324507b28c5ad9a2331f475a453c571d04d058 (diff)
downloadklee-b2e64702cc1ebb1ffe01a32ebde0f179bf09c337.tar.gz
Add LeakSanitizer (component of AddressSanitizer) suppression file
which is required to suppress all the leaks I'm currently seeing in KLEE
when running ``make unittests`` and ``make check``.

Ideally there should be no leaks but we aren't there yet. Hopefully
at some point we won't need to suppress any leaks and then we can
have a TravisCI build that builds with ASan.

The leak of the expression objects when running the executor is worrying
and I will investigate this next.
-rw-r--r--utils/sanitizers/lsan.txt25
1 files changed, 25 insertions, 0 deletions
diff --git a/utils/sanitizers/lsan.txt b/utils/sanitizers/lsan.txt
new file mode 100644
index 00000000..10286657
--- /dev/null
+++ b/utils/sanitizers/lsan.txt
@@ -0,0 +1,25 @@
+# This file tells the LeakSanitizer (LSan)component of the AddressSanitizer (-fsanitizer=address)
+# to ignore certain leaks at runtime. To tell LSan about these set the environment variable
+# LSAN_OPTIONS=suppressions=/path/to/this/file and then run the sanitized build of KLEE.
+#
+# Ideally we shouldn't need to suppress anything but currently KLEE seems to be leaking
+# The suppressions below are what's needed for ``make unittests`` and ``make check`` to not
+# fail due to leaks.
+
+# Low priority
+leak:tools/kleaver/main.cpp
+leak:lib/Expr/Parser.cpp
+
+# These are bad, these definitely need fixing
+leak:klee::Array::CreateArray
+leak:klee::UpdateList::extend
+leak:klee::ConstantExpr::alloc
+leak:klee::ConcatExpr::alloc
+leak:klee::ReadExpr::alloc
+leak:klee::ExtractExpr::alloc
+leak:klee::ExtractExpr::alloc
+leak:klee::AddExpr::alloc
+leak:klee::SubExpr::alloc
+leak:klee::SExtExpr::alloc
+leak:klee::MulExpr::alloc
+leak:klee::ZExtExpr::alloc