summaryrefslogtreecommitdiff
path: root/ckcapi-session.c
diff options
context:
space:
mode:
Diffstat (limited to 'ckcapi-session.c')
-rw-r--r--ckcapi-session.c26
1 files changed, 15 insertions, 11 deletions
diff --git a/ckcapi-session.c b/ckcapi-session.c
index 0745cb7..6142760 100644
--- a/ckcapi-session.c
+++ b/ckcapi-session.c
@@ -51,6 +51,7 @@ CK_RV
ckcapi_session_create(CK_SLOT_ID slot, CkCapiSession** ret)
{
CkCapiSession* sess;
+ const char *store;
DWORD err;
sess = calloc(1, sizeof(CkCapiSession));
@@ -70,19 +71,22 @@ ckcapi_session_create(CK_SLOT_ID slot, CkCapiSession** ret)
return CKR_HOST_MEMORY;
}
- sess->store = CertOpenSystemStore((HCRYPTPROV)NULL,
- ckcapi_token_get_store_name(slot));
- if(sess->store == NULL)
+ store = ckcapi_token_get_store_name(slot);
+ if(store)
{
- err = GetLastError();
-
- /* Store not found, we don't care */
- if(err != ERROR_FILE_NOT_FOUND)
+ sess->store = CertOpenSystemStore((HCRYPTPROV)NULL, store);
+ if(sess->store == NULL)
{
- ckcapi_hash_free(sess->object_data, NULL);
- CloseHandle(sess->mutex);
- free(sess);
- return ckcapi_winerr_to_ckr(err);
+ err = GetLastError();
+
+ /* Store not found, we don't care */
+ if(err != ERROR_FILE_NOT_FOUND)
+ {
+ ckcapi_hash_free(sess->object_data, NULL);
+ CloseHandle(sess->mutex);
+ free(sess);
+ return ckcapi_winerr_to_ckr(err);
+ }
}
}