From 80d33e0c10b165e8c0889eba889842ccc38f9826 Mon Sep 17 00:00:00 2001 From: Aki Tuomi Date: Sun, 17 May 2015 20:18:26 +0300 Subject: [PATCH] Move locking to correct place --- pdns/pkcs11signers.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pdns/pkcs11signers.cc b/pdns/pkcs11signers.cc index 35007013dd..437da33f0b 100644 --- a/pdns/pkcs11signers.cc +++ b/pdns/pkcs11signers.cc @@ -297,7 +297,6 @@ class Pkcs11Token { bool Login(const std::string& pin) { if (pin.empty()) return false; // no empty pin. - Lock l(d_slot->m()); if (d_slot->Login(pin) == true) { LoadAttributes(); } @@ -307,13 +306,13 @@ class Pkcs11Token { bool LoggedIn() { if (d_loaded == false && d_slot->LoggedIn() == true) { - Lock l(d_slot->m()); LoadAttributes(); } return d_slot->LoggedIn(); } void LoadAttributes() { + Lock l(d_slot->m()); std::vector attr; std::vector key; attr.push_back(P11KitAttribute(CKA_CLASS, (unsigned long)CKO_PRIVATE_KEY)); @@ -377,6 +376,7 @@ class Pkcs11Token { } int GenerateKeyPair(CK_MECHANISM_PTR mechanism, std::vector& pubAttributes, std::vector& privAttributes, CK_OBJECT_HANDLE_PTR pubKey, CK_OBJECT_HANDLE_PTR privKey) { + { Lock l(d_slot->m()); size_t k; @@ -400,6 +400,7 @@ class Pkcs11Token { logError("C_GenerateKeyPair"); delete [] pubAttr; delete [] privAttr; + } if (d_err == 0) LoadAttributes(); -- 2.47.2