From a5500721dbb1dbf18dbeda7766c70b1ac74c7cd3 Mon Sep 17 00:00:00 2001 From: MarkusTeufelberger Date: Sat, 10 Dec 2016 20:05:09 +0100 Subject: [PATCH] Don't consider function for ASAN ge25519_scalarmult_base_choose_niels leads to errors (#1668) when compiled with address sanitizer. --- src/ed25519-donna/ed25519-donna-64bit-x86.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/ed25519-donna/ed25519-donna-64bit-x86.h b/src/ed25519-donna/ed25519-donna-64bit-x86.h index 30bd472762..7c844ecda4 100644 --- a/src/ed25519-donna/ed25519-donna-64bit-x86.h +++ b/src/ed25519-donna/ed25519-donna-64bit-x86.h @@ -2,7 +2,13 @@ #define HAVE_GE25519_SCALARMULT_BASE_CHOOSE_NIELS -DONNA_NOINLINE static void +#if defined(__clang__) || defined (__GNUC__) +# define ATTRIBUTE_NO_SANITIZE_ADDRESS __attribute__((no_sanitize_address)) +#else +# define ATTRIBUTE_NO_SANITIZE_ADDRESS +#endif + +ATTRIBUTE_NO_SANITIZE_ADDRESS DONNA_NOINLINE static void ge25519_scalarmult_base_choose_niels(ge25519_niels *t, const uint8_t table[256][96], uint32_t pos, signed char b) { int64_t breg = (int64_t)b; uint64_t sign = (uint64_t)breg >> 63;