blob: 47b2580d86bbf5e36d80617d1d763c0599e66a64 [file] [log] [blame]
This adds an allowlist of packages that have known memory leaks.
So that the leak detector will not report memory leaks from these packages.
diff --git a/lib/sanitizer_common/sanitizer_flags.inc b/lib/sanitizer_common/sanitizer_flags.inc
index 58f7f37..bf97783 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc
@@ -152,7 +152,7 @@ COMMON_FLAG(const char *, coverage_dir, ".",
COMMON_FLAG(bool, full_address_space, false,
"Sanitize complete address space; "
"by default kernel area on 32-bit platforms will not be sanitized")
-COMMON_FLAG(bool, print_suppressions, true,
+COMMON_FLAG(bool, print_suppressions, false,
"Print matched suppressions at exit.")
COMMON_FLAG(
bool, disable_coredump, (SANITIZER_WORDSIZE == 64),
diff --git a/lib/lsan/lsan_common.cpp b/lib/lsan/lsan_common.cpp
index a6119af..44d6f9a 100644
--- a/compiler-rt/lib/lsan/lsan_common.cpp
+++ b/compiler-rt/lib/lsan/lsan_common.cpp
@@ -13,6 +13,7 @@
//===----------------------------------------------------------------------===//
#include "lsan_common.h"
+#include "lsan_default_suppression.h"
#include "sanitizer_common/sanitizer_common.h"
#include "sanitizer_common/sanitizer_flags.h"
@@ -89,6 +90,7 @@ void InitializeSuppressions() {
suppression_ctx->ParseFromFile(flags()->suppressions);
if (&__lsan_default_suppressions)
suppression_ctx->Parse(__lsan_default_suppressions());
+ suppression_ctx->Parse(kLSanDefaultSuppressions);
suppression_ctx->Parse(kStdSuppressions);
}
diff --git a/lib/lsan/lsan_default_suppression.h b/lib/lsan/lsan_default_suppression.h
new file mode 100644
index 0000000..91aa484
--- /dev/null
+++ b/compiler-rt/lib/lsan/lsan_default_suppression.h
@@ -0,0 +1,34 @@
+namespace __lsan {
+
+char kLSanDefaultSuppressions[] =
+// ================ Leaks in third-party code ================
+
+// False positives in libfontconfig. http://crbug.com/39050
+"leak:libfontconfig\n"
+
+// Leaks in Nvidia's libGL.
+"leak:libGL.so\n"
+
+"leak:libnssutil3\n"
+"leak:libnspr4\n"
+"leak:libnss3\n"
+"leak:libplds4\n"
+"leak:libnssckbi\n"
+
+// XRandR has several one time leaks.
+"leak:libxrandr\n"
+
+// xrandr leak. http://crbug.com/119677
+"leak:XRRFindDisplay\n"
+
+// leak on session_manager. http://crbug.com/378805
+"leak:/sbin/session_manager\n"
+
+// leak on cryptohome. http://crbug.com/508281
+"leak:/usr/sbin/cryptohome\n"
+
+// leak on buffet. http://crbug.com/473700
+//"leak:/usr/bin/buffet\n"
+// End of suppressions.
+; // Please keep this semicolon.
+}