From 7b629dcfa6db55f10b58440b71d2e8912c9a4fce Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Thu, 23 Jul 2015 05:10:12 -0400 Subject: Cleared UB in cast.cpp due to use of rotVariable. On PowerPC, the specialization that uses inline assembler will activate. The inline assembly uses __rlwnm which takes a mask and does not suffer C/C++ UB --- cast.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'cast.cpp') diff --git a/cast.cpp b/cast.cpp index ef0a5efd..539923da 100644 --- a/cast.cpp +++ b/cast.cpp @@ -15,15 +15,15 @@ NAMESPACE_BEGIN(CryptoPP) /* CAST uses three different round functions */ #define f1(l, r, km, kr) \ - t = rotlVariable(km + r, kr); \ + t = rotlMod(km + r, kr); \ l ^= ((S[0][U8a(t)] ^ S[1][U8b(t)]) - \ S[2][U8c(t)]) + S[3][U8d(t)]; #define f2(l, r, km, kr) \ - t = rotlVariable(km ^ r, kr); \ + t = rotlMod(km ^ r, kr); \ l ^= ((S[0][U8a(t)] - S[1][U8b(t)]) + \ S[2][U8c(t)]) ^ S[3][U8d(t)]; #define f3(l, r, km, kr) \ - t = rotlVariable(km - r, kr); \ + t = rotlMod(km - r, kr); \ l ^= ((S[0][U8a(t)] + S[1][U8b(t)]) ^ \ S[2][U8c(t)]) - S[3][U8d(t)]; -- cgit v1.2.1