Add memory sanitizer config, and run on travis. Reviewed-by: Rich Salz <rsalz@openssl.org>
diff --git a/.travis.yml b/.travis.yml index 718a350..a278cb2 100644 --- a/.travis.yml +++ b/.travis.yml
@@ -36,6 +36,9 @@ env: CONFIG_OPTS="no-shared enable-asan" - os: linux compiler: clang-3.6 + env: CONFIG_OPTS="no-shared enable-msan" + - os: linux + compiler: clang-3.6 env: CONFIG_OPTS="no-asm enable-ubsan enable-rc5 enable-md2 enable-ssl3 enable-ssl3-method -fno-sanitize=alignment" - os: linux compiler: clang-3.6
diff --git a/Configure b/Configure index bd13d37..d4f67ab 100755 --- a/Configure +++ b/Configure
@@ -311,6 +311,7 @@ "md2", "md4", "mdc2", + "msan", "multiblock", "nextprotoneg", "ocb", @@ -369,6 +370,7 @@ "fuzz-libfuzzer" => "default", "fuzz-afl" => "default", "md2" => "default", + "msan" => "default", "rc5" => "default", "sctp" => "default", "ssl-trace" => "default", @@ -439,6 +441,8 @@ "apps" => [ "tests" ], "comp" => [ "zlib" ], sub { !$disabled{"unit-test"} } => [ "heartbeats" ], + + sub { !$disabled{"msan"} } => [ "asm" ], ); # Avoid protocol support holes. Also disable all versions below N, if version @@ -1063,8 +1067,12 @@ $config{cflags} .= "-fsanitize=undefined -fno-sanitize-recover=all "; } +unless ($disabled{msan}) { + $config{cflags} .= "-fsanitize=memory "; +} + unless ($disabled{"fuzz-libfuzzer"} && $disabled{"fuzz-afl"} - && $disabled{asan} && $disabled{ubsan}) { + && $disabled{asan} && $disabled{ubsan} && $disabled{msan}) { $config{cflags} .= "-fno-omit-frame-pointer -g "; } #