diff options
Diffstat (limited to 'net/base/keygen_handler_nss.cc')
-rw-r--r-- | net/base/keygen_handler_nss.cc | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/net/base/keygen_handler_nss.cc b/net/base/keygen_handler_nss.cc index 9819289..6b79e14 100644 --- a/net/base/keygen_handler_nss.cc +++ b/net/base/keygen_handler_nss.cc @@ -229,14 +229,14 @@ std::string KeygenHandler::GenKeyAndSignChallenge() { } if (publicKey) { - PK11_DestroyTokenObject(publicKey->pkcs11Slot, publicKey->pkcs11ID); + if (!isSuccess || !stores_key_) { + PK11_DestroyTokenObject(publicKey->pkcs11Slot, publicKey->pkcs11ID); + } + SECKEY_DestroyPublicKey(publicKey); } if (spkInfo) { SECKEY_DestroySubjectPublicKeyInfo(spkInfo); } - if (publicKey) { - SECKEY_DestroyPublicKey(publicKey); - } if (arena) { PORT_FreeArena(arena, PR_TRUE); } |