X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/b1ab9ed8d0e0f1c3b66d7daa8fd5564444c56195..420ff9d9379a8d93f2c90f026a797bdea1eb4517:/libsecurity_cdsa_client/lib/macclient.cpp?ds=inline diff --git a/libsecurity_cdsa_client/lib/macclient.cpp b/libsecurity_cdsa_client/lib/macclient.cpp index 38c8b6a7..c821cc99 100644 --- a/libsecurity_cdsa_client/lib/macclient.cpp +++ b/libsecurity_cdsa_client/lib/macclient.cpp @@ -29,14 +29,18 @@ using namespace CssmClient; // void MacContext::activate() { - if (!mActive) - { - check(CSSM_CSP_CreateMacContext(attachment()->handle(), mAlgorithm, - mKey, &mHandle)); - mActive = true; - if (cred()) - cred(cred()); // install explicitly - } + { + StLock _(mActivateMutex); + if (!mActive) + { + check(CSSM_CSP_CreateMacContext(attachment()->handle(), mAlgorithm, + mKey, &mHandle)); + mActive = true; + } + } + + if (cred()) + cred(cred()); // install explicitly }