Linux: Workaround for gcc 4.4.7 bug under CentOS 6 that causes VeraCrypt built under CentOS 6 to crash when Whirlpool hash is used.

This commit is contained in:
Mounir IDRASSI 2019-10-17 14:59:24 +02:00
parent 3bb661244c
commit 4119521f9e
No known key found for this signature in database
GPG Key ID: 02C30AE90FAE4A6F

View File

@ -642,6 +642,20 @@ static const uint64 Whirlpool_C[8*256+R] = {
// Whirlpool basic transformation. Transforms state based on block. // Whirlpool basic transformation. Transforms state based on block.
void WhirlpoolTransform(uint64 *digest, const uint64 *block) void WhirlpoolTransform(uint64 *digest, const uint64 *block)
{ {
#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE
#if defined(__GNUC__) && (CRYPTOPP_GCC_VERSION <= 40407)
/* workaround for gcc 4.4.7 bug under CentOS which causes crash
* in inline assembly.
* This dummy check that is always false since "block" is aligned.
*/
uint64 lb = (uint64) block;
if (lb % 16)
{
TC_THROW_FATAL_EXCEPTION;
}
#endif
#endif
#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE #if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE
if (HasISSE()) if (HasISSE())
{ {