Change "result=false" to "return fals". There's no sense in trying the instruction if we can't catch the SIGILL or we can't restore SIGMASK state
parent
87e2da8388
commit
eaafd4206e
28
cpu.cpp
28
cpu.cpp
|
|
@ -99,11 +99,11 @@ bool CpuId(word32 input, word32 output[4])
|
||||||
|
|
||||||
volatile SigHandler oldHandler = signal(SIGILL, SigIllHandlerCPUID);
|
volatile SigHandler oldHandler = signal(SIGILL, SigIllHandlerCPUID);
|
||||||
if (oldHandler == SIG_ERR)
|
if (oldHandler == SIG_ERR)
|
||||||
result = false;
|
return false;
|
||||||
|
|
||||||
volatile sigset_t oldMask;
|
volatile sigset_t oldMask;
|
||||||
if (sigprocmask(0, NULL, (sigset_t*)&oldMask))
|
if (sigprocmask(0, NULL, (sigset_t*)&oldMask))
|
||||||
result = false;
|
return false;
|
||||||
|
|
||||||
if (setjmp(s_jmpNoCPUID))
|
if (setjmp(s_jmpNoCPUID))
|
||||||
result = false;
|
result = false;
|
||||||
|
|
@ -162,10 +162,10 @@ static bool TrySSE2()
|
||||||
|
|
||||||
volatile sigset_t oldMask;
|
volatile sigset_t oldMask;
|
||||||
if (sigprocmask(0, NULL, (sigset_t*)&oldMask))
|
if (sigprocmask(0, NULL, (sigset_t*)&oldMask))
|
||||||
result = false;
|
return false;
|
||||||
|
|
||||||
if (setjmp(s_jmpNoSSE2))
|
if (setjmp(s_jmpNoSSE2))
|
||||||
result = true;
|
result = false;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE
|
#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE
|
||||||
|
|
@ -397,11 +397,11 @@ static bool TryNEON()
|
||||||
|
|
||||||
volatile SigHandler oldHandler = signal(SIGILL, SigIllHandlerNEON);
|
volatile SigHandler oldHandler = signal(SIGILL, SigIllHandlerNEON);
|
||||||
if (oldHandler == SIG_ERR)
|
if (oldHandler == SIG_ERR)
|
||||||
result = false;
|
return false;
|
||||||
|
|
||||||
volatile sigset_t oldMask;
|
volatile sigset_t oldMask;
|
||||||
if (sigprocmask(0, NULL, (sigset_t*)&oldMask))
|
if (sigprocmask(0, NULL, (sigset_t*)&oldMask))
|
||||||
result = false;
|
return false;
|
||||||
|
|
||||||
if (setjmp(s_jmpNoNEON))
|
if (setjmp(s_jmpNoNEON))
|
||||||
result = false;
|
result = false;
|
||||||
|
|
@ -458,11 +458,11 @@ static bool TryCRC32()
|
||||||
|
|
||||||
volatile SigHandler oldHandler = signal(SIGILL, SigIllHandlerCRC32);
|
volatile SigHandler oldHandler = signal(SIGILL, SigIllHandlerCRC32);
|
||||||
if (oldHandler == SIG_ERR)
|
if (oldHandler == SIG_ERR)
|
||||||
result = false;
|
return false;
|
||||||
|
|
||||||
volatile sigset_t oldMask;
|
volatile sigset_t oldMask;
|
||||||
if (sigprocmask(0, NULL, (sigset_t*)&oldMask))
|
if (sigprocmask(0, NULL, (sigset_t*)&oldMask))
|
||||||
result = false;
|
return false;
|
||||||
|
|
||||||
if (setjmp(s_jmpNoCRC32))
|
if (setjmp(s_jmpNoCRC32))
|
||||||
result = false;
|
result = false;
|
||||||
|
|
@ -512,11 +512,11 @@ static bool TryAES()
|
||||||
|
|
||||||
volatile SigHandler oldHandler = signal(SIGILL, SigIllHandlerAES);
|
volatile SigHandler oldHandler = signal(SIGILL, SigIllHandlerAES);
|
||||||
if (oldHandler == SIG_ERR)
|
if (oldHandler == SIG_ERR)
|
||||||
result = false;
|
return false;
|
||||||
|
|
||||||
volatile sigset_t oldMask;
|
volatile sigset_t oldMask;
|
||||||
if (sigprocmask(0, NULL, (sigset_t*)&oldMask))
|
if (sigprocmask(0, NULL, (sigset_t*)&oldMask))
|
||||||
result = false;
|
return false;
|
||||||
|
|
||||||
if (setjmp(s_jmpNoAES))
|
if (setjmp(s_jmpNoAES))
|
||||||
result = false;
|
result = false;
|
||||||
|
|
@ -568,11 +568,11 @@ static bool TrySHA1()
|
||||||
|
|
||||||
volatile SigHandler oldHandler = signal(SIGILL, SigIllHandlerSHA1);
|
volatile SigHandler oldHandler = signal(SIGILL, SigIllHandlerSHA1);
|
||||||
if (oldHandler == SIG_ERR)
|
if (oldHandler == SIG_ERR)
|
||||||
result = false;
|
return false;
|
||||||
|
|
||||||
volatile sigset_t oldMask;
|
volatile sigset_t oldMask;
|
||||||
if (sigprocmask(0, NULL, (sigset_t*)&oldMask))
|
if (sigprocmask(0, NULL, (sigset_t*)&oldMask))
|
||||||
result = false;
|
return false;
|
||||||
|
|
||||||
if (setjmp(s_jmpNoSHA1))
|
if (setjmp(s_jmpNoSHA1))
|
||||||
result = false;
|
result = false;
|
||||||
|
|
@ -627,11 +627,11 @@ static bool TrySHA2()
|
||||||
|
|
||||||
volatile SigHandler oldHandler = signal(SIGILL, SigIllHandlerSHA2);
|
volatile SigHandler oldHandler = signal(SIGILL, SigIllHandlerSHA2);
|
||||||
if (oldHandler == SIG_ERR)
|
if (oldHandler == SIG_ERR)
|
||||||
result = false;
|
return false;
|
||||||
|
|
||||||
volatile sigset_t oldMask;
|
volatile sigset_t oldMask;
|
||||||
if (sigprocmask(0, NULL, (sigset_t*)&oldMask))
|
if (sigprocmask(0, NULL, (sigset_t*)&oldMask))
|
||||||
result = false;
|
return false;
|
||||||
|
|
||||||
if (setjmp(s_jmpNoSHA2))
|
if (setjmp(s_jmpNoSHA2))
|
||||||
result = false;
|
result = false;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue