summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmilia Kasper <emilia@openssl.org>2016-04-08 18:55:28 +0200
committerEmilia Kasper <emilia@openssl.org>2016-04-10 01:50:45 +0200
commitcdbf577973a76a0627debb5105f46d6f4509c39e (patch)
tree6364727252f4076a71e3bd3111ca4c4ad3edceec
parentFix warnings exposed by clang-3.8 (diff)
downloadopenssl-cdbf577973a76a0627debb5105f46d6f4509c39e.tar.xz
openssl-cdbf577973a76a0627debb5105f46d6f4509c39e.zip
Disable some sanitizer checks without PEDANTIC
Code without PEDANTIC has intentional "undefined" behaviour. To get best coverage for both PEDANTIC and non-PEDANTIC codepaths, run the sanitizer builds in two different configurations: 1) Without PEDANTIC but with alignment checks disabled. 2) With PEDANTIC. To not overload Travis too much, run one build with clang and the other with gcc (chosen at random). Also remove a micro-optimization in CAST code to be able to -fsanitize=shift. Whether shift sanitization is meaningful for crypto or an obstacle is debatable but since this appears to be the only offender, we might as well keep the check for now. Reviewed-by: Richard Levitte <levitte@openssl.org>
-rw-r--r--.travis.yml4
-rw-r--r--crypto/cast/cast_lcl.h4
2 files changed, 3 insertions, 5 deletions
diff --git a/.travis.yml b/.travis.yml
index 27f4b37f55..62675da039 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -38,13 +38,13 @@ matrix:
env: CONFIG_OPTS="-fsanitize=address"
- os: linux
compiler: clang-3.6
- env: CONFIG_OPTS="no-asm -fno-sanitize-recover -fsanitize=address -fsanitize=undefined enable-rc5 enable-md2"
+ env: CONFIG_OPTS="no-asm -fno-sanitize-recover -fsanitize=address -fsanitize=undefined enable-rc5 enable-md2 -fno-sanitize=alignment"
- os: linux
compiler: gcc-5
env: CONFIG_OPTS="-fsanitize=address"
- os: linux
compiler: gcc-5
- env: CONFIG_OPTS="no-asm -fno-sanitize-recover -fsanitize=address -fsanitize=undefined enable-rc5 enable-md2"
+ env: CONFIG_OPTS="no-asm -fno-sanitize-recover -DPEDANTIC -fsanitize=address -fsanitize=undefined enable-rc5 enable-md2"
- os: linux
compiler: i686-w64-mingw32-gcc
env: CONFIG_OPTS="no-pic"
diff --git a/crypto/cast/cast_lcl.h b/crypto/cast/cast_lcl.h
index 10a1de3d73..4a3c603507 100644
--- a/crypto/cast/cast_lcl.h
+++ b/crypto/cast/cast_lcl.h
@@ -151,10 +151,8 @@
#if defined(OPENSSL_SYS_WIN32) && defined(_MSC_VER)
# define ROTL(a,n) (_lrotl(a,n))
-#elif defined(PEDANTIC)
-# define ROTL(a,n) ((((a)<<(n))&0xffffffffL)|((a)>>((32-(n))&31)))
#else
-# define ROTL(a,n) ((((a)<<(n))&0xffffffffL)|((a)>>(32-(n))))
+# define ROTL(a,n) ((((a)<<(n))&0xffffffffL)|((a)>>((32-(n))&31)))
#endif
#define C_M 0x3fc