]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - keystone-linux/ti-softhsmv2.git/blobdiff - src/lib/SoftHSM.cpp
fix for key delete issue in database
[keystone-linux/ti-softhsmv2.git] / src / lib / SoftHSM.cpp
index d73fb519c8b287946696509cfe6d27166c5c937d..dd675ecb265bffdd6bfbe27c2aa6a9df4d079f08 100644 (file)
@@ -2964,8 +2964,11 @@ CK_RV SoftHSM::generateRSA
                                else
                                        osobject->abortTransaction();
 
-                               if (!bOK)
+                               if (!bOK) {
+                                       handleManager->destroyObject(*phPublicKey);
+                                       osobject->destroyObject();
                                        rv == CKR_FUNCTION_FAILED;
+                               }
                        }
                }
        }
@@ -3234,8 +3237,10 @@ CK_RV SoftHSM::CreateObject(CK_SESSION_HANDLE hSession, CK_ATTRIBUTE_PTR pTempla
        p11object->init(object);
 
        rv = p11object->saveTemplate(token, isPrivate, pTemplate,ulCount,op);
-       if (rv != CKR_OK)
+       if (rv != CKR_OK) {
+               object->destroyObject();
                return rv;
+       }
 
        if (isToken) {
                *phObject = handleManager->addTokenObject(slot->getSlotID(), isPrivate, object);