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

Reply via email to