Commit cdbf5779 authored by Emilia Kasper's avatar Emilia Kasper
Browse files

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: default avatarRichard Levitte <levitte@openssl.org>
parent 50eadf2a
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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"
+1 −3
Original line number Diff line number Diff line
@@ -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