diff options
author | Alexey Samsonov <vonosmas@gmail.com> | 2014-12-22 21:46:10 +0000 |
---|---|---|
committer | Alexey Samsonov <vonosmas@gmail.com> | 2014-12-22 21:46:10 +0000 |
commit | f90d757687ce94eefb139c7db9b9a9b65eab00c5 (patch) | |
tree | aed2bb1f31cbfc17f9839f7d5066b45dd5718eca /lib/msan/msan.cc | |
parent | 95dab99736e13ec0a7d106b41c7efc21ebf93acf (diff) |
[Sanitizer] Make CommonFlags immutable after initialization.
Summary:
Protect CommonFlags singleton by adding const qualifier to
common_flags() accessor. The only ways to modify the flags are
SetCommonFlagsDefaults(), ParseCommonFlagsFromString() and
OverrideCommonFlags() functions, which are only supposed to be
called during initialization.
Test Plan: regression test suite
Reviewers: kcc, eugenis, glider
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D6741
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@224736 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/msan/msan.cc')
-rw-r--r-- | lib/msan/msan.cc | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/lib/msan/msan.cc b/lib/msan/msan.cc index fb1829614..33b856bb9 100644 --- a/lib/msan/msan.cc +++ b/lib/msan/msan.cc @@ -144,14 +144,17 @@ static void ParseFlagsFromString(Flags *f, const char *str) { } static void InitializeFlags(Flags *f, const char *options) { - CommonFlags *cf = common_flags(); SetCommonFlagsDefaults(); - cf->external_symbolizer_path = GetEnv("MSAN_SYMBOLIZER_PATH"); - cf->malloc_context_size = 20; - cf->handle_ioctl = true; - // FIXME: test and enable. - cf->check_printf = false; - cf->intercept_tls_get_addr = true; + { + CommonFlags cf = *common_flags(); + cf.external_symbolizer_path = GetEnv("MSAN_SYMBOLIZER_PATH"); + cf.malloc_context_size = 20; + cf.handle_ioctl = true; + // FIXME: test and enable. + cf.check_printf = false; + cf.intercept_tls_get_addr = true; + OverrideCommonFlags(cf); + } internal_memset(f, 0, sizeof(*f)); f->poison_heap_with_zeroes = false; |