diff options
author | Jeffrey Walton <noloader@gmail.com> | 2020-02-17 14:15:02 -0500 |
---|---|---|
committer | Jeffrey Walton <noloader@gmail.com> | 2020-02-17 14:15:02 -0500 |
commit | 6fa3e38e5c26820396d11a5a155fc83790d17c72 (patch) | |
tree | d1aef601107380e718b1efffa34eb90cea34b130 /sha_simd.cpp | |
parent | a76c29a11e9029132f537f6853a9daa846f54f03 (diff) | |
download | cryptopp-git-6fa3e38e5c26820396d11a5a155fc83790d17c72.tar.gz |
Restore SIGILL handler if sigprocmask fails
We've never encountered this case, but better safe then sorry.
Diffstat (limited to 'sha_simd.cpp')
-rw-r--r-- | sha_simd.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sha_simd.cpp b/sha_simd.cpp index 419e183b..277c9362 100644 --- a/sha_simd.cpp +++ b/sha_simd.cpp @@ -113,7 +113,10 @@ bool CPU_ProbeSHA1() volatile sigset_t oldMask;
if (sigprocmask(0, NULLPTR, (sigset_t*)&oldMask))
+ {
+ signal(SIGILL, oldHandler);
return false;
+ }
if (setjmp(s_jmpSIGILL))
result = false;
@@ -180,7 +183,10 @@ bool CPU_ProbeSHA256() volatile sigset_t oldMask;
if (sigprocmask(0, NULLPTR, (sigset_t*)&oldMask))
+ {
+ signal(SIGILL, oldHandler);
return false;
+ }
if (setjmp(s_jmpSIGILL))
result = false;
|