RPM Package Manager, CVS Repository http://rpm5.org/cvs/ ____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: j...@rpm5.org Module: rpm Date: 19-Apr-2016 15:07:46 Branch: rpm-5_4 Handle: 2016041913074501 Modified files: (Branch: rpm-5_4) rpm/rpmio digest.c edon-r.c lane.c luffa.c poptIO.c rpmutil.h tib3.c Log: - avoid certain digests when compiling with -fsanity=address. Summary: Revision Changes Path 2.93.2.7 +12 -4 rpm/rpmio/digest.c 1.5.4.3 +3 -0 rpm/rpmio/edon-r.c 2.7.2.2 +5 -0 rpm/rpmio/lane.c 2.6.2.3 +4 -0 rpm/rpmio/luffa.c 1.94.2.20 +6 -2 rpm/rpmio/poptIO.c 1.1.2.6 +5 -2 rpm/rpmio/rpmutil.h 2.3.4.1 +4 -0 rpm/rpmio/tib3.c ____________________________________________________________________________ patch -p0 <<'@@ .' Index: rpm/rpmio/digest.c ============================================================================ $ cvs diff -u -r2.93.2.6 -r2.93.2.7 digest.c --- rpm/rpmio/digest.c 10 Apr 2016 22:12:09 -0000 2.93.2.6 +++ rpm/rpmio/digest.c 19 Apr 2016 13:07:45 -0000 2.93.2.7 @@ -31,7 +31,7 @@ #undef Final #undef Hash -#ifdef CLANG_ASAN_COMPILES_SLOWLY +#ifndef CLANG_ASAN_COMPILES_SLOWLY #include "edon-r.h" #endif @@ -61,11 +61,13 @@ #undef Final #undef Hash -#ifdef CLANG_ASAN_COMPILES_SLOWLY +#ifndef CLANG_ASAN_COMPILES_SLOWLY #include "lane.h" #endif +#ifndef CLANG_ASAN_COMPILES_SLOWLY #include "luffa.h" +#endif #include "md2.h" #include "md6.h" @@ -99,6 +101,7 @@ #include "skein.h" +#ifndef CLANG_ASAN_COMPILES_SLOWLY #include "tib3.h" #undef BitSequence #undef DataLength @@ -108,6 +111,7 @@ #undef Update #undef Final #undef Hash +#endif #include "tiger.h" @@ -731,7 +735,7 @@ ctx->Update = (int (*)(void *, const byte *, size_t)) _echo_Update; ctx->Digest = (int (*)(void *, byte *)) echo_Final; break; -#ifdef CLANG_ASAN_COMPILES_SLOWLY +#ifndef CLANG_ASAN_COMPILES_SLOWLY case PGPHASHALGO_EDONR_224: ctx->digestsize = 224/8; goto edonr; case PGPHASHALGO_EDONR_256: ctx->digestsize = 256/8; goto edonr; case PGPHASHALGO_EDONR_384: ctx->digestsize = 384/8; goto edonr; @@ -826,7 +830,7 @@ ctx->Update = (int (*)(void *, const byte *, size_t)) _keccak_Update; ctx->Digest = (int (*)(void *, byte *)) keccak_Final; break; -#ifdef CLANG_ASAN_COMPILES_SLOWLY +#ifndef CLANG_ASAN_COMPILES_SLOWLY case PGPHASHALGO_LANE_224: ctx->digestsize = 224/8; goto lane; case PGPHASHALGO_LANE_256: ctx->digestsize = 256/8; goto lane; case PGPHASHALGO_LANE_384: ctx->digestsize = 384/8; goto lane; @@ -843,6 +847,7 @@ ctx->Digest = (int (*)(void *, byte *)) laneDigest; break; #endif +#ifndef CLANG_ASAN_COMPILES_SLOWLY case PGPHASHALGO_LUFFA_224: ctx->digestsize = 224/8; goto luffa; case PGPHASHALGO_LUFFA_256: ctx->digestsize = 256/8; goto luffa; case PGPHASHALGO_LUFFA_384: ctx->digestsize = 384/8; goto luffa; @@ -858,6 +863,7 @@ ctx->Update = (int (*)(void *, const byte *, size_t)) luffaUpdate; ctx->Digest = (int (*)(void *, byte *)) luffaDigest; break; +#endif case PGPHASHALGO_MD6_224: ctx->digestsize = 224/8; goto md6; case PGPHASHALGO_MD6_256: ctx->digestsize = 256/8; goto md6; case PGPHASHALGO_MD6_384: ctx->digestsize = 384/8; goto md6; @@ -960,6 +966,7 @@ ctx->Update = (int (*)(void *, const byte *, size_t)) _simd_Update; ctx->Digest = (int (*)(void *, byte *)) simd_Final; break; +#ifndef CLANG_ASAN_COMPILES_SLOWLY case PGPHASHALGO_TIB3_224: ctx->digestsize = 224/8; goto tib3; case PGPHASHALGO_TIB3_256: ctx->digestsize = 256/8; goto tib3; case PGPHASHALGO_TIB3_384: ctx->digestsize = 384/8; goto tib3; @@ -976,6 +983,7 @@ ctx->Update = (int (*)(void *, const byte *, size_t)) _tib3_Update; ctx->Digest = (int (*)(void *, byte *)) tib3_Final; break; +#endif case PGPHASHALGO_HAVAL_5_160: default: (void)rpmioFreePoolItem((rpmioItem)ctx, __FUNCTION__, __FILE__, __LINE__); @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/edon-r.c ============================================================================ $ cvs diff -u -r1.5.4.2 -r1.5.4.3 edon-r.c --- rpm/rpmio/edon-r.c 30 Sep 2014 22:31:43 -0000 1.5.4.2 +++ rpm/rpmio/edon-r.c 19 Apr 2016 13:07:45 -0000 1.5.4.3 @@ -1,3 +1,5 @@ +#include <rpmutil.h> +#if !defined(CLANG_ASAN_COMPILES_SLOWLY) /* Reference implementation of tweaked Edon-R */ #include <string.h> #include "edon-r.h" @@ -677,3 +679,4 @@ qq = edonr_Final(&state, hashval); return(qq); } +#endif /* CLANG_ASAN_COMPILES_SLOWLY */ @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/lane.c ============================================================================ $ cvs diff -u -r2.7.2.1 -r2.7.2.2 lane.c --- rpm/rpmio/lane.c 11 May 2015 21:10:18 -0000 2.7.2.1 +++ rpm/rpmio/lane.c 19 Apr 2016 13:07:45 -0000 2.7.2.2 @@ -1,3 +1,6 @@ +#include <rpmutil.h> +#if !defined(CLANG_ASAN_COMPILES_SLOWLY) + /* laneref.c v1.1 October 2008 * Reference ANSI C implementation of LANE * @@ -3083,3 +3086,5 @@ return SUCCESS; } + +#endif /* CLANG_ASAN_COMPILES_SLOWLY */ @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/luffa.c ============================================================================ $ cvs diff -u -r2.6.2.2 -r2.6.2.3 luffa.c --- rpm/rpmio/luffa.c 23 Oct 2013 18:23:58 -0000 2.6.2.2 +++ rpm/rpmio/luffa.c 19 Apr 2016 13:07:45 -0000 2.6.2.3 @@ -1,3 +1,6 @@ +#include <rpmutil.h> +#if !defined(CLANG_ASAN_COMPILES_SLOWLY) + /*******************************/ /* luffa.c */ /* Version 1.1 (Feb 12th 2009) */ @@ -1664,3 +1667,4 @@ return ret; } +#endif /* CLANG_ASAN_COMPILES_SLOWLY */ @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/poptIO.c ============================================================================ $ cvs diff -u -r1.94.2.19 -r1.94.2.20 poptIO.c --- rpm/rpmio/poptIO.c 10 Apr 2016 22:12:09 -0000 1.94.2.19 +++ rpm/rpmio/poptIO.c 19 Apr 2016 13:07:45 -0000 1.94.2.20 @@ -236,7 +236,7 @@ N_("Echo-384 digest"), NULL }, { "echo-512",'\0', POPT_ARG_VAL, &rpmioDigestHashAlgo, PGPHASHALGO_ECHO_512, N_("Echo-512 digest"), NULL }, -#ifdef CLANG_ASAN_COMPILES_SLOWLY +#ifndef CLANG_ASAN_COMPILES_SLOWLY { "edonr-224",'\0', POPT_ARG_VAL, &rpmioDigestHashAlgo, PGPHASHALGO_EDONR_224, N_("EdonR-224 digest"), NULL }, { "edonr-256",'\0', POPT_ARG_VAL, &rpmioDigestHashAlgo, PGPHASHALGO_EDONR_256, @@ -286,7 +286,7 @@ N_("Keccak-384 digest"), NULL }, { "keccak-512",'\0', POPT_ARG_VAL, &rpmioDigestHashAlgo, PGPHASHALGO_KECCAK_512, N_("Keccak-512 digest"), NULL }, -#ifdef CLANG_ASAN_COMPILES_SLOWLY +#ifndef CLANG_ASAN_COMPILES_SLOWLY { "lane-224",'\0', POPT_ARG_VAL, &rpmioDigestHashAlgo, PGPHASHALGO_LANE_224, N_("Lane-224 digest"), NULL }, { "lane-256",'\0', POPT_ARG_VAL, &rpmioDigestHashAlgo, PGPHASHALGO_LANE_256, @@ -296,6 +296,7 @@ { "lane-512",'\0', POPT_ARG_VAL, &rpmioDigestHashAlgo, PGPHASHALGO_LANE_512, N_("Lane-512 digest"), NULL }, #endif +#ifndef CLANG_ASAN_COMPILES_SLOWLY { "luffa-224",'\0', POPT_ARG_VAL, &rpmioDigestHashAlgo, PGPHASHALGO_LUFFA_224, N_("Luffa-224 digest"), NULL }, { "luffa-256",'\0', POPT_ARG_VAL, &rpmioDigestHashAlgo, PGPHASHALGO_LUFFA_256, @@ -304,6 +305,7 @@ N_("Luffa-384 digest"), NULL }, { "luffa-512",'\0', POPT_ARG_VAL, &rpmioDigestHashAlgo, PGPHASHALGO_LUFFA_512, N_("Luffa-512 digest"), NULL }, +#endif { "md6-224",'\0', POPT_ARG_VAL, &rpmioDigestHashAlgo, PGPHASHALGO_MD6_224, N_("MD6-224 digest"), NULL }, { "md6-256",'\0', POPT_ARG_VAL, &rpmioDigestHashAlgo, PGPHASHALGO_MD6_256, @@ -340,6 +342,7 @@ N_("SIMD-384 digest"), NULL }, { "simd-512",'\0', POPT_ARG_VAL, &rpmioDigestHashAlgo, PGPHASHALGO_SIMD_512, N_("SIMD-512 digest"), NULL }, +#ifndef CLANG_ASAN_COMPILES_SLOWLY { "tib3-224",'\0', POPT_ARG_VAL, &rpmioDigestHashAlgo, PGPHASHALGO_TIB3_224, N_("TIB3-224 digest"), NULL }, { "tib3-256",'\0', POPT_ARG_VAL, &rpmioDigestHashAlgo, PGPHASHALGO_TIB3_256, @@ -348,6 +351,7 @@ N_("TIB3-384 digest"), NULL }, { "tib3-512",'\0', POPT_ARG_VAL, &rpmioDigestHashAlgo, PGPHASHALGO_TIB3_512, N_("TIB3-512 digest"), NULL }, +#endif { "salsa10",'\0', POPT_ARG_VAL,&rpmioDigestHashAlgo, PGPHASHALGO_SALSA10, N_("SALSA-10 hash"), NULL }, { "salsa20",'\0', POPT_ARG_VAL,&rpmioDigestHashAlgo, PGPHASHALGO_SALSA20, @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/rpmutil.h ============================================================================ $ cvs diff -u -r1.1.2.5 -r1.1.2.6 rpmutil.h --- rpm/rpmio/rpmutil.h 10 Apr 2016 22:22:40 -0000 1.1.2.5 +++ rpm/rpmio/rpmutil.h 19 Apr 2016 13:07:46 -0000 1.1.2.6 @@ -106,7 +106,7 @@ #endif /* if !__clang__ && __GNUC__ == 4 && __GNUC_MINOR__ >= 7 */ -#ifdef HAVE_GNUC_TM_ATOMIC +#if defined(HAVE_GNUC_TM_ATOMIC) && !defined(__SANITIZE_ADDRESS__) # define RPM_GNUC_TM_SAFE __attribute__((transaction_safe)) # define RPM_GNUC_TM_PURE __attribute__((transaction_pure)) # define RPM_GNUC_TM_CALLABLE __attribute__((transaction_callable)) @@ -128,8 +128,11 @@ # define RPM_GNUC_TM_CANCEL #endif -#if defined(__has_attribute) +#if defined(__has_feature) # if __has_feature(address_sanitizer) +# if __clang__ +# define CLANG_ASAN_COMPILES_SLOWLY /* XXX disable certain digests */ +# endif # define RPM_GNUC_NOASAN __attribute__((no_sanitize("address"))) # define RPM_GNUC_NOBOUNDS __attribute__((no_sanitize("bounds"))) # define RPM_GNUC_NOUNDEFINED __attribute__((no_sanitize("undefined"))) @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/tib3.c ============================================================================ $ cvs diff -u -r2.3 -r2.3.4.1 tib3.c --- rpm/rpmio/tib3.c 22 Jul 2009 17:13:49 -0000 2.3 +++ rpm/rpmio/tib3.c 19 Apr 2016 13:07:46 -0000 2.3.4.1 @@ -1,3 +1,6 @@ +#include <rpmutil.h> +#if !defined(CLANG_ASAN_COMPILES_SLOWLY) + #include <string.h> #include "tib3.h" @@ -706,3 +709,4 @@ return ret; return Final(&state, hashval); } +#endif /* CLANG_ASAN_COMPILES_SLOWLY */ @@ . ______________________________________________________________________ RPM Package Manager http://rpm5.org CVS Sources Repository rpm-cvs@rpm5.org