summaryrefslogtreecommitdiffstats
path: root/net/base/keygen_handler_nss.cc
diff options
context:
space:
mode:
Diffstat (limited to 'net/base/keygen_handler_nss.cc')
-rw-r--r--net/base/keygen_handler_nss.cc8
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);
}